【发布时间】:2019-05-18 22:33:07
【问题描述】:
我有使用 Alamofire 上传图片的功能。 当我上传它时,图像已损坏。但是当我将它保存到设备时,图像可以打开。
这是上传代码
Alamofire.upload(multipartFormData: { (_multipartFormData:MultipartFormData) in
for (key, value) in parameters! {
if key == "foto_id" {
_multipartFormData.append(
"\(value)".data(using: String.Encoding.utf8)!,
withName: key,
fileName: "_foto_id.png",
mimeType: "image/png"
)
} else if key == "foto_selfie" {
_multipartFormData.append(
"\(value)".data(using: String.Encoding.utf8)!,
withName: key,
fileName: "_foto_selfie.png",
mimeType: "image/png"
)
} else {
//Data other than image
_multipartFormData.append((value as! String).data(using: .utf8)!, withName: key)
}
}
}, usingThreshold: 1, to: BASE_URL, method: .post) { (encodingResult:SessionManager.MultipartFormDataEncodingResult) in
switch encodingResult {
case .success(let upload, _, _):
upload.responseObject{(response: DataResponse<clsResponsePostFotoID>) in
let reqLoginResponse = response.result.value
completionHandler(reqLoginResponse, nil)
}
break
case .failure(let encodingError):
print(encodingError)
// completionHandler(nil,encodingError as NSError?)
break
}
}
}
如果我将"\(value)".data(using: String.Encoding.utf8)! 更改为value as! Data,它会显示错误
Cannot invoke 'append' with an argument list of type '(Data?, withName: String, fileName: String, mimeType: String)'
Overloads for 'append' exist with these partially matching parameter lists: (Data, withName: String, fileName: String, mimeType: String), (URL, withName: String, fileName: String, mimeType: String)
我该如何解决? 谢谢
【问题讨论】:
-
"\(value)".data(using: String.Encoding.utf8)!,,不。您正在使用description,显然不推荐。value的类是什么?`Data?NSData?UIImage`? -
@A.H.Nuri 无法使用类型为“(数据?,withName:String,fileName:String,mimeType:String)”的参数列表调用“append”
标签: ios swift xcode swift3 alamofire