2017-09-21 99 views
0

我試圖使用上傳功能將jpeg圖像上傳到AWS。但我發現了以下錯誤:使用alamofire upload將圖像上傳到AWS S3

nw_endpoint_handler_add_write_request [29.1 52.92.250.6:443 failed socket-flow (satisfied)] cannot accept write requests

一些幫助將是非常有用。這裏是我使用的代碼(params爲數據類型)

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("____") 
      } 
     } 
+0

看到這個https://stackoverflow.com/questions/40519829/upload-image-to-server-using-alamofire –

回答

0

試試這個:

斯威夫特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") 
     }    
}