【发布时间】:2017-02-08 05:25:36
【问题描述】:
我正在使用此功能在 Alamofire 的 post 方法中上传多个带有参数的图像。我的图片没有上传。我交叉检查了服务器上没有图像条目,但其他数据成功存储在 DB 中。 我在 Alamofire 3.0 中使用了这种方法,现在我更新到了 4.0 。其他 post 和 get 功能对我来说工作正常。
static func callUploadApi (_ url: String , parameter:[String: String] , images: [URL] , imageParameterName:String ,showHud:Bool , handler: @escaping (_ result : NSMutableDictionary) -> Void )
{
Alamofire.upload(multipartFormData: { multipartFormData in
for (key, value) in parameter // Add Paramters
{
multipartFormData.append(value.data(using: .utf8 )! , withName: key)
}
for imageUrl in images // Add Images
{
multipartFormData.append(imageUrl, withName: imageParameterName)
}
}, to: "\(baseUrl)\(url)", method: .post,
encodingCompletion: { encodingResult in
switch encodingResult {
case .success(let upload, _, _):
print(upload.progress)
upload.responseJSON { response in
if let JSON = response.result.value
{
print("***********************************************")
print("JSON: \(JSON)")
print("***********************************************")
handler(JSON as! NSMutableDictionary)
}
}
break
case .failure(let encodingError):
print("error:\(encodingError)")
}
})
}
【问题讨论】:
-
提示:打印 curl 并将其与终端一起使用,这样您就会知道您的代码实际上在做什么。
-
我在邮递员中检查了它,它工作正常。当我尝试通过代码上传图像时,它没有上传。如何找出问题出在哪里?
-
您对 ATS 有疑问吗?
-
是的,我在 plist 中设置了它。其他 api 在应用程序中也可以正常工作,只有 multipartformdata 没有按预期工作。我必须使用它来发送具有多个参数的多个图像。
标签: ios swift3 alamofire image-uploading