swift - 使用 Alamofire 上传多部分表单数据显示服务器中缺少文件

标签 swift alamofire multipartform-data urlsession

我正在尝试使用 Alamofire 上传图片,响应显示成功但图片未上传。当我与后端开发人员一起调试时,请求中似乎缺少文件附件。但是,进度显示文件的上传详细信息。任何人都可以帮助解决这里的问题。

class ImageUploadClient {
        class func upload(image: UIImage, to request: URLRequest) {
            let imgData = UIImageJPEGRepresentation(image, 0.5)!
            let filename = "file.jpeg"        

            Alamofire.upload(multipartFormData: { (multiPartData) in
                multiPartData.append(imgData, withName: filename, mimeType: "image/jpg")
            }, usingThreshold: UInt64(1024),
               with: request, encodingCompletion: { encodingResult in
                switch encodingResult {
                case .success(let request, let streamingFromDisk, let fileURL):
                    debugPrint(streamingFromDisk)   // Shows true
                    debugPrint(fileURL)             // Returns file url
                    debugPrint(request)

                    // upload progress closure
                    request.uploadProgress(closure: { (progress) in
                        print("upload progress: \(progress.fractionCompleted)")
                        // here you can send out to a delegate or via notifications the upload progress to interested parties
                    })

                    // response handler
                    request.validate()
                        .responseJSON(completionHandler: { (response) in
                            switch response.result {
                            case .success(let value):
                                debugPrint(value)

                            case .failure(let err):
                                debugPrint(err)
                            }
                        })

                // encodingResult failure
                case .failure(let error):
                    debugPrint(error)
                }
            })
        }
    }

最佳答案

尝试为您的图像添加文件名

像这样

withName 键将包含服务器上图像的键名

let profileKey = "profileImage"

multiPartData.append(imgData, withName: profileKey, fileName: 文件名, mimeType: "image/jpg")

关于swift - 使用 Alamofire 上传多部分表单数据显示服务器中缺少文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51980213/

相关文章:

perl - 在 Perl 中使用 REST::Client 的多部分/表单数据

ios - Swift 中的远程通知没有声音

swift - 如何在单击时突出显示 UIButton 的背景和 "unhighlight"呢?

ios - 获取调用的 JSON 函数时复制数据

php - 空白(无)条目在 swift 4 中使用 alamofire 请求插入数据库。请解决它

swift - 在快速包装时意外发现 nil

iOS Swift 如何使用 <script> 标签解析 HTML 文件并获取其中的值

iOS swift Aspect Fit 左放置

azure - 测试分段文件上传 Azure Function

java - 多部分表单 POST 提交请求获取损坏的文件