0
這就是我試圖使用Alamofire上傳圖片的方式。但程序崩潰說像... 'NSInvalidArgumentException', reason: '-[_SwiftTypePreservingNSNumber dataUsingEncoding:]: unrecognized selector sent to instance...
我不能圖確切reason.This就是我正在做的請求......使用Alamofire上傳圖片的問題(以圖片作爲參數)
for i in 1...(imageArray.count) {
for img in imageArray {
let url = "http://myapp.com/a/images_upload"
let headers = [ "Content-Type":"application/x-www-form-urlencoded"]
let imageData: Data = (UIImageJPEGRepresentation(img, 0.6) as Data?)!
print(imageData)
let parameters: [String: Any] = [
"access_token": commonVarForAccessToken,
"seller_id": idForNewOldUser,
"product_id": self.productId,
"is_default": "1",
"sequence": i,
"image": imageData ]
Alamofire.upload(multipartFormData: { (multipartFormData) in
print(parameters)
multipartFormData.append(imageData as Data, withName: "home-\(self.index)", fileName: "home-\(self.index)", mimeType: "image/jpeg")
for (key, value) in parameters {
print(key,value)
multipartFormData.append((value as AnyObject).data(using: String.Encoding.utf8.rawValue)!, withName: key)
}
}, to:url)
{ (result) in
switch result {
case .success(let upload, _, _):
upload.uploadProgress(closure: { (Progress) in
//Print progress
})
upload.responseJSON { response in
print(response.request) // original URL request
if let JSON = response.result.value {
print("JSON: \(JSON)")
}
}
case .failure(let encodingError):
print(encodingError)
break
}}}}
希望有人能幫助... ...謝謝.. 。:)
爲什麼使用兩次循環? –
某處有一個(內部/隱藏)調用'dataUsingEncoding:'因爲對象是一個'(NS)Number'而不是'(NS)Data',所以不起作用。我會說這是這樣一行:'multipartFormData.append((值爲AnyObject).data(使用:String.Encoding.utf8.rawValue)!,withName:key)'。你不能在任何類型的'value'上做'((作爲AnyObject的值).data(使用:String.Encoding.utf8.rawValue)',我不知道其他對象的類是什麼,但''序列':我,'應該崩潰它 – Larme
我也試着給序列硬編碼值爲「1」,但它再次崩潰也許它不接受圖像在給定的格式... imageData只是顯示爲'403829字節'...這可能是一個問題,@Larme? –