2017-02-17 7 views
0

Код ниже прекрасно работает в Swift 3 для загрузки файла изображения в виде multipart. Тем не менее, я не смог получить ничего похожего на работу в Swift 2.2. Если я попытаюсь использовать это в Swift 2.2, я получаю сообщение Ambiguous reference to member 'upload(_:_:headers:file:)'Неоднозначная ссылка на загрузку участника (_: _: headers: file :) '

Есть ли способ выполнить то же самое в Swift 2.2? Я нашел несколько взаимосвязанных вопросов, но только нашли решения, которые работают в Swift 3.

func submitFile(entryId: Int, entryDetailValue: String, fieldId: Int, fieldType: String) { 

    let parameters = [ 
     "entryId": "\(entryId)", 
     "entryDetail": entryDetailValue, 
     "fieldId": "\(fieldId)", 
     "type": fieldType 
    ] 

    print(parameters) 

    Alamofire.upload(multipartFormData: { (multipartFormData) in 
     multipartFormData.append(UIImageJPEGRepresentation(self.imageView.image!, 1)!, withName: "file", fileName: "swift_file.jpeg", mimeType: "image/jpeg") 
     for (key, value) in parameters { 
      multipartFormData.append(value.data(using: String.Encoding.utf8)!, withName: key) 
     } 
     }, to:"<my endpoint url>") 
    { (result) in 
     switch result { 
     case .success(let upload, _, _): 

      upload.uploadProgress(closure: { (progress) in 
       //Print progress 
       print(progress) 
      }) 

      upload.responseData { response in 
       print(response.result) 
      } 

     case .failure(let error): 
      print(error) 
     } 
    } 

} 

ответ

1

В быстром 3 попробовать этот

func uploadImageWithParameter() 
{ 
    let id = String(describing: userDefaults.value(forKey: USER_LOGIN_ID)!) 

    var parameters = [String:String]() 
    parameters = ["title":headingTextfield.text!, 
        "id":id, 
        "description":descriptionTextview.text, 
        "author":authorTextfield.text!, 
        "url": urlTextfield.text!] 

    Alamofire.upload(multipartFormData: { (multipartFormData) in 
     multipartFormData.append(UIImageJPEGRepresentation(self.capturedImage, 0.5)!, withName: "pic", fileName: "swift_file.jpeg", mimeType: "image/jpeg") 
     for (key, value) in parameters { 
      multipartFormData.append(value.data(using: String.Encoding.utf8)!, withName: key) 
     } 

    }, to:"your url") 
    { (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) 
     } 

    } 
} 
+1

Я думаю ОП хочет решение в Swift 2.2 ... – hg8

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