2016-09-22 17 views
4

私は画像アップロードを行い、下記の方法でサーバーにアップロードできました。Swift 3 - Alamofilre 4.0マルチパート画像のアップロード(進捗状況付き)

今、進歩したイメージをアップロードしたいので、どのようにすればいいか教えてください。私はどこでも見つけましたが、正しい解決策を得ていませんでした。それは進歩だのない画像アップロード用

コード:多くのことを検索した後

@IBAction func uploadClick(_ sender: AnyObject) { 

    // define parameters 
    let parameters = [ 
     "file_name": "swift_file.jpeg" 
    ] 

    Alamofire.upload(multipartFormData: { (multipartFormData) in 
     multipartFormData.append(UIImageJPEGRepresentation(self.photoImageView.image!, 0.5)!, withName: "photo_path", fileName: "swift_file.jpeg", mimeType: "image/jpeg") 
     for (key, value) in parameters { 
      multipartFormData.append(value.data(using: String.Encoding.utf8)!, withName: key) 
     } 
     }, to:"http://server1/upload_img.php") 
    { (result) in 
     switch result { 
     case .success(let upload, _, _): 

      upload.responseJSON { response in 
       //self.delegate?.showSuccessAlert() 
       print(response.request) // original URL request 
       print(response.response) // URL response 
       print(response.data)  // server data 
       print(response.result) // result of response serialization 
       //      self.showSuccesAlert() 
       //self.removeImage("frame", fileExtension: "txt") 
       if let JSON = response.result.value { 
        print("JSON: \(JSON)") 
       } 
      } 

     case .failure(let encodingError): 
      //self.delegate?.showFailAlert() 
      print(encodingError) 
     } 

    } 

} 

答えて

14

は最後に解決策を得ました。結果ブロック内にuploadProgressブロックを置くだけで済みます。

Alamofire.upload(multipartFormData: { (multipartFormData) in 
     multipartFormData.append(UIImageJPEGRepresentation(self.photoImageView.image!, 0.5)!, withName: "photo_path", fileName: "swift_file.jpeg", mimeType: "image/jpeg") 
     for (key, value) in parameters { 
      multipartFormData.append(value.data(using: String.Encoding.utf8)!, withName: key) 
     } 
     }, to:"http://server1/upload_img.php") 
    { (result) in 
     switch result { 
     case .success(let upload, _, _): 

      upload.uploadProgress(closure: { (Progress) in 
       print("Upload Progress: \(Progress.fractionCompleted)") 
      }) 

      upload.responseJSON { response in 
       //self.delegate?.showSuccessAlert() 
       print(response.request) // original URL request 
       print(response.response) // URL response 
       print(response.data)  // server data 
       print(response.result) // result of response serialization 
       //      self.showSuccesAlert() 
       //self.removeImage("frame", fileExtension: "txt") 
       if let JSON = response.result.value { 
        print("JSON: \(JSON)") 
       } 
      } 

     case .failure(let encodingError): 
      //self.delegate?.showFailAlert() 
      print(encodingError) 
     } 

    } 
関連する問題