Swift 4:如何使用 Alamofire 在参数中发布文件?

Posted

技术标签:

【中文标题】Swift 4:如何使用 Alamofire 在参数中发布文件?【英文标题】:Swift 4: How to post a file in params with Alamofire? 【发布时间】:2018-10-30 09:12:15 【问题描述】:

enter image description here

图片是我如何将文件上传到后端 API 的 Postman 示例。我正在努力如何使用 Alamofire 上传文件或 image.png/jpg?因为我无法在 Param 中包含该文件。

【问题讨论】:

借助multipart,可以发送文件/图片。 【参考方案1】:

试试这个代码

let image = UIImage.init(named: "myImage")
let imgData = UIImageJPEGRepresentation(image!, 0.2)!

let parameters = ["custid": 1] //Optional for extra parameter

Alamofire.upload(multipartFormData:  multipartFormData in
        multipartFormData.append(imgData, withName: "fileset",fileName: "file.jpg", mimeType: "image/jpg")
        for (key, value) in parameters 
                multipartFormData.append(value.data(using: String.Encoding.utf8)!, withName: key)
             //Optional for extra parameters
    ,
to:"mysite/upload.php")
 (result) in
    switch result 
    case .success(let upload, _, _):

        upload.uploadProgress(closure:  (progress) in
            print("Upload Progress: \(progress.fractionCompleted)")
        )

        upload.responseJSON  response in
             print(response.result.value)  
        

    case .failure(let encodingError):
        print(encodingError)  
    

【讨论】:

以上是关于Swift 4:如何使用 Alamofire 在参数中发布文件?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Alamofire,Swift 4 为 UICollectionView 获取 JSON 数据

如何在 Swift 3 中使用 Alamofire 4 解析这个 json?

如何在 Swift 4 中使用 Alamofire 上传具有其他参数的多个图像

Alamofire 4 请求返回 NSArray,无法弄清楚如何在 Swift 3 中使用 SwiftyJSON 进行解析

如何使用 Alamofire Swift 4 在 JSON 编码中传递数据

如何使用 Alamofire Swift 4 将图像填充到 UICollectionView