使用多部分和 Alamofire 上传图像

Posted

技术标签:

【中文标题】使用多部分和 Alamofire 上传图像【英文标题】:Uploading an image using multi-part and Alamofire 【发布时间】:2016-09-06 14:17:01 【问题描述】:

我正在尝试将图像上传到我的后端服务器。创建了一条新记录,但从未上传任何图像:

func uploadDish(dish:Dish, completionHandler: ((AnyObject?, ErrorType?) -> Void))
    let urlString = "http://backend.com/v1/dish"
    SwiftSpinner.show("Uploading Dish...")
    Alamofire.upload(
        .POST,
        urlString,
        multipartFormData:  multipartFormData in

            if let image = self.image 
                if let imageData : NSData = UIImageJPEGRepresentation(image, 0.1)
                    multipartFormData.appendBodyPart(data: imageData, name: "file", fileName: "testesttest.jpg", mimeType: "image/jpeg")
                
            
            multipartFormData.appendBodyPart(data: "foo".dataUsingEncoding(NSUTF8StringEncoding)!, name :"name")
            multipartFormData.appendBodyPart(data: "bar".dataUsingEncoding(NSUTF8StringEncoding)!, name :"address")
            multipartFormData.appendBodyPart(data: "1".dataUsingEncoding(NSUTF8StringEncoding)!, name :"priceRange")
            multipartFormData.appendBodyPart(data: "\(234)".dataUsingEncoding(NSUTF8StringEncoding)!, name :"lat")
            multipartFormData.appendBodyPart(data: "\(234)".dataUsingEncoding(NSUTF8StringEncoding)!, name :"lng")
        ,
        encodingCompletion:  encodingResult in
            switch encodingResult 
            case .Success(let upload, _, _):
                print(upload.debugDescription)
                break
            case .Failure(let encodingError):
                print(encodingError)
                break
            
        
    )
    SwiftSpinner.hide()

它在邮递员中工作:

【问题讨论】:

你有什么错误吗?可以发一下吗? 【参考方案1】:

这实际上是正确的,发现错误在后端。

以上方式就是你发布图片的方式

【讨论】:

以上是关于使用多部分和 Alamofire 上传图像的主要内容,如果未能解决你的问题,请参考以下文章

使用 Alamofire 上传多部分表单数据文件

使用 alamofire multipart 上传图像数组

使用 PHP 在 Swift 5 中使用 Alamofire 接收图像上传

使用 multipartFormData 上传图像时 Alamofire 请求正文为零

如何上传文件多部分alamofire swift5?

如何处理Alamofire中的多部分/相关数据?