[英]Upload image to AWS S3 using alamofire upload
我正在嘗試使用上載功能將jpeg
圖像上載到AWS。 但是我收到以下錯誤:
nw_endpoint_handler_add_write_request [29.1 52.92.250.6:443 failed socket-flow (satisfied)] cannot accept write requests
一些幫助將很有用。 這是我正在使用的代碼(參數的類型為Data)
let request = Alamofire.upload(params, to: url, method: .put, headers: ["Content-Type":"image/jpeg"])
request.responseJSON { (responseJson) in
switch responseJson.result {
case .success:
print("Success: \(responseJson.result.value)")
break
case .failure:
print("Call failed: \(responseJson.result.value)")
break
default:
print("____")
}
}
最好使用Amazon自己的SDK來執行此操作。
http://docs.aws.amazon.com/mobile/sdkforios/developerguide/s3transfermanager.html
試試這個:
Swift 3.x:
func uploadImageWith(parameter params:Dictionary<String,String>,image:UIImage?,handler:@escaping ((Dictionary<String,Any>?) -> Void)) {
Alamofire.upload(multipartFormData: { (multipartFormData) in
for (key, value) in params {
multipartFormData.append(value.data(using: String.Encoding.utf8, allowLossyConversion: false)!, withName: key)
}
if image != nil {
if let imgData = UIImageJPEGRepresentation(image!, 0.5) {
multipartFormData.append(imgData, withName: "photo_upload", fileName: "file.png", mimeType: "image/png")
}
}
}, to: "http://") { (encodingResult) in
switch encodingResult {
case .success(let upload, _, _):
upload.responseJSON { response in
switch response.result {
case .success:
if let jsonDict = response.result.value as? Dictionary<String,Any> {
print("Json Response: \(jsonDict)")
handler(jsonDict)
print(jsonDict,(response.response!.statusCode))
}
else{
print(response.response!.statusCode)
handler(nil)
}
if let data = response.data, let utf8Text = String(data: data, encoding: .utf8) {
print("Server Response: \(utf8Text)") // original server data as UTF8 string
}
break
case .failure(let error):
print(response.response!.statusCode)
print_debug(error)
handler(nil)
break
}
}
case .failure(let encodingError):
print(encodingError)
}
}
}
用法:
uploadImageWith(parameter: ["key":"value"], image: UIImage(named:"demo")) { (response) in
if response != nil {
print(response)
} else {
print("Something went wrong")
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.