0

Ich muss Bilder oder Videos aus der iPhone-Bibliothek auswählen und die ausgewählten Bilder und Videos auf den Server hochladen. Ich suchte nach dem mehrteiligen Formular-Upload, konnte aber nicht die notwendigen Informationen erhalten.Multipart Formular Upload in iOS, Wie ist es gemacht?

Ich habe die folgende JSON-Struktur zum Posten.

{"uuid":"a6059eb6-2417-4575-8f83-e5eca065a1bb","id":901,"username":"somename","description":"Some Desciption","date":"Some date","title":"Some Title","published":1,"type":"Some Type","responsible":["Person 1","Person 2","Person 3"],"products_List":["Product 1"],"assets":[{"uuid":"e1102eae-987a-4930-96ad-5ae331d785bc","fileExtension":"jpg","mimeType":"image\/jpeg","type":"image"},{"uuid":"c61bcc45-5347-4e98-9990-bc949dad24fa","fileExtension":"mp4","mimeType":"video\/mp4","type":"video"}]}

Antwort

0

mit diesem Code Versuchen Sie,

NSURLSessionConfiguration *configuration = [NSURLSessionConfiguration defaultSessionConfiguration]; 
self.client = [[AFHTTPSessionManager alloc] initWithSessionConfiguration:configuration]; 

NSString *tempFileString = [NSTemporaryDirectory() stringByAppendingPathComponent:@"your-app-temp"]; 
NSURL *filePathtemp = [NSURL fileURLWithPath:tempFileString]; 

NSMutableURLRequest *request = [[AFJSONRequestSerializer serializer] multipartFormRequestWithMethod:@"POST" URLString:@"http://domain/path" parameters:parameters constructingBodyWithBlock:^(id<AFMultipartFormData> formData) { 
    [formData appendPartWithFileData:imageData name:@"imageData" fileName:@"temp.jpeg" mimeType:@"image/jpeg"]; 
} error:nil]; 

[[AFJSONRequestSerializer serializer] requestWithMultipartFormRequest:request writingStreamContentsToFile:filePathtemp completionHandler:^(NSError *error) { 
    NSURLSessionUploadTask *uploadTask = [self.client uploadTaskWithRequest:request fromFile:filePathtemp progress:nil completionHandler:completionHandler]; 
    [uploadTask resume]; 
}]; 
+0

Was sind Dateiname und Name? Da ich das Bild aus der Bildbibliothek im iPhone auswählen, wie erhalten wir den Dateinamen. –

+0

Sie müssen die Logik für den Dateinamen schreiben. Wie zufällige Nein oder Datum Zeit mit Namen. –

+0

irgendein Tutorial Link bitte .. Ich bin wirklich verwirrt .. –

0

Sie haben Bild hochladen separat als Multipart-Daten unter Verwendung von AFNetworing. So: -

- (AFHTTPRequestOperation*)POSTAction:(APIRestAction)task 
      constructingBodyWithBlock:(void (^)(id<AFMultipartFormData> formData))block 
           success:(void (^)(AFHTTPRequestOperation* operation, id responseObject))success 
           failure:(void (^)(AFHTTPRequestOperation* operation, NSError* error))failure; 

Hier: - Legen Sie Ihren Server-Pfad in APIRestAction.