我正在尝试使用.post和mulitpartFormData方式将UIImage文件上传到服务器。任何人都可以查看下面的代码并建议出了什么问题?我试图成功上传一整天的图像文件。但是,由于我对斯威夫特的短暂经验和研究,即使很难研究与我的情况相关的正确答案。
PS. ">UIImageView.image 必须仅从主线程使用"消息连续显示"保护让"点。也请让我借用你的智慧。
Alamofire.upload(
multipartFormData: { multipartform in
guard let image = self.profileImage.image else { return }
let imageData = UIImageJPEGRepresentation(image, 0.1)
multipartform.append(imageData!, withName: "img_profile", mimeType: "image/jpg")
},
to: urlString,
method: .post,
encodingCompletion: { result in
switch result {
case .success(let request, _, _):
request.responseData(completionHandler: { (response) in
switch response.result {
case .success:
print(response)
case .failure(let error):
print(error)
}
})
case .failure(let error):
print(error)
}
})
您的问题出在以下行,因为您没有添加filename
并且filename
将是需要图像的服务器的参数名称:
multipartform.append(imageData!, withName: "img_profile", mimeType: "image/jpg")
尝试通过添加文件名进行更新:
multipartFormData.append(imageData!, withName: "img_profile", fileName: "file-name", mimeType: "image/jpg")
希望这会有所帮助。