0

iPhoneライブラリから画像や動画を選択し、選択した画像や動画をサーバーにアップロードする必要があります。マルチパートフォームのアップロードを検索しましたが、必要な情報を取得できませんでした。iosでのマルチフォームフォームのアップロードはどうですか?

私は次のJSON構造を投稿しています。

{"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"}]}

答えて

0

あなたがAFNetworingを使用してマルチパートデータとして個別に画像をアップロードする必要があり、このコードで

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

ファイル名と名前は何ですか?私はiPhoneの画像ライブラリから画像を選ぶので、ファイル名はどうやって取得するのですか? –

+0

ファイル名のロジックを記述する必要があります。名前のあるランダムな番号や日付のようなもの。 –

+0

チュートリアルリンクしてください..私は本当に混乱しています.. –

0

を試してみてください。このように: -

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

ここでは: - APIRestActionでサーバーパスを設定します。

関連する問題