2016-09-22 2 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) 
     } 

    } 
Смежные вопросы