2016-11-15 1 views
1

Ich möchte mehrere Bilder auf den Server mit alamofire hochladen. Ich habe Belwo-Code für diesen Zweck verwendet.Aber das Problem ist, ich nicht, wie ich den Dateinamen & Parametername für Datei übergeben.Ich weiß nicht, wie Sie es implementieren .Wie lade ich mehrere Bilder mit alamofire in iOS auf den Server hoch?

func uploadMultiImage(_ method:Method,domainName: String, parameters:Parameters?, encoding:Encoding, headers: [String:String]?,imageData:Data)-> Void { 
    print("header is \(headers)") 


    Alamofire.upload(imageData, to: completeURL(domainName: domainName), method: method, headers: headers).uploadProgress(closure: { 

     progress in 

     self.progress(progress.fractionCompleted) 
     } 
     ).responseJSON(completionHandler: {response in 

      print("response is \(response.description)") 
      print("response1 is \(response.debugDescription)") 
      print("response2 is \(response.result.description)") 



     }) 
} 

Bitte führen Sie, welche der beste Weg ist?

Antwort

1
if let img = selectImageOutlet.image { 

// IMAGE_SHAKE_BASE_URL = "https://post.imageshack.us/upload_api.php" 
let imageShackUrl = NSURL(string: IMAGE_SHAKE_BASE_URL)! 

//Convert to jpeg & compress by 80%(0.2) 
let imgData = UIImageJPEGRepresentation(img, 0.2)! 

let keyData = IMAGE_SHACK_API_KEY.dataUsingEncoding(NSUTF8StringEncoding)! 
let keyJson = "json".dataUsingEncoding(NSUTF8StringEncoding)! 

Alamofire.upload(.POST, imageShackUrl, multipartFormData: { MultipartFormData in 

    MultipartFormData.appendBodyPart(data: keyData, name: "key") 
    MultipartFormData.appendBodyPart(data: imgData, name: "fileupload", fileName: "image", mimeType: "image/jpg") 
    MultipartFormData.appendBodyPart(data: keyJson, name: "format") 

    },encodingCompletion: { encodingResult in 

     switch encodingResult { 

     case .Success(let upload, _, _): 

      upload.responseJSON { response in 

       if let info = response.result.value as? Dictionary<String, AnyObject> { 

        if let links = info["links"] as? Dictionary<String, AnyObject> { 

         if let imgLink = links["image_link"] as? String { 
          print("LINK: \(imgLink)") 
         } 
        } 
       } 

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

http://blog.mingweitee.com/2016/04/09/swift-how-to-upload-images-using-alamofire/

+1

auf diese Weise ich nicht Fortschritt, wie viel% Bild hochgeladen verfolgen können? – Techiee

+0

Ja du kannst. Überprüfen Sie diesen Link http://swiftdeveloperblog.com/image-upload-with-progress-bar-example-in-swift/ – rvx

Verwandte Themen