2017-09-12 3 views
0

, wie ein Array von Bildern hochladen multipart es mit Moya swift3Bilder Mehrteiliger Mit Moya Swift 3 Fully Beispiel

meinen Code

var multipartBody: [MultipartFormData]? { 
    switch self { 
    case .registerWith(let registrationObject): 
     if let profileImageData = registrationObject.profileImageData{ 
     return [MultipartFormData(provider: .data(profileImageData), name: "profile_picture", fileName: "\(registrationObject.phone).jpg", 
      mimeType: "image/jpeg")] 
     } 
     return nil 
    default: 
     return nil 
    } 
} 

var task: Task { 
    switch self { 
    case .registerWith: 
     if let multipartBody = multipartBody { 
      return .upload(.multipart(multipartBody)) 
     }else{ 
      return .request 
     } 
    default: 
     return .request 
    } 
} 

in Körper senden, aber ich brauche die imagedata in Körper senden mit Schlüssel "profileImage"

Antwort

0

Sie müssen "name:" profile_bild "" in "name:" profileImage "", ändern versuchen Sie dies.

0

Um ein Bild in Multipart mit Moya

1- Put-Dateien laden Sie in MultipartFormData Array

// put files in MultipartFormData Arry 
var multipartBody: [MultipartFormData]? { 
    switch self { 
      case .registerWith(let registrationObject): 
       let profileImageData:Data = registrationObject.profileImageData as Data 
       return [MultipartFormData(provider: .data(profileImageData), 
      name: "profile_picture", fileName: "fileName", mimeType: "image/jpeg")] 
       default: 
       return nil 
     } 
} 

2- hinzufügen Anbieter von multipartBody auf Verlangen des Körpers des Verfahrens hochladen möchten Sie es braucht

var parameters: [String: Any]? { 
    switch self { 
      case .registerWith(let registrationObject): 
      var body = registrationObject.toJSON()! 
      // add the file in body 
      body["profile_picture"] = multipartBody?[0].provider 
      return body 
    } 
} 

3- make Aufgabentyp dieser Methode ist

laden
var task: Task { 
     switch self { 
      case .registerWith: 
       // multipartBody that in First step 
      return .upload(.multipart(multipartBody)) 
     } 
} 
0

Hear ist Codebild mit Moya Version 10.0.2

//MARK:- MultipartData - 
var multipartBody :[Moya.MultipartFormData]?{ 
    switch self { 
    case .addUser(let userInfo): 

     //other parameters need to convert to data 
     let vName = userInfo.name 
     let vNameData = Moya.MultipartFormData(provider: MultipartFormData.FormDataProvider.data(vName.data(using: .utf8)!), name: "vName") 

     //convert your image to data 
     guard let data = UIImageJPEGRepresentation(userInfo.profilePic, 1.0) else { return nil } 

     return [Moya.MultipartFormData(provider: MultipartFormData.FormDataProvider.data(data), name: "vAvtarName", fileName: "photo.jpg", mimeType: "image/jpeg"),vNameData] 
    default: 
     return [] 
    } 
} 

var task: Task { 
    switch self { 
     case .addUser(let userInfo): 
     return .uploadMultipart(self.multipartBody!) 
    } 
} 
hochladen