投稿方法でビデオをサーバーにアップロードしています。サーバーで受信していないという問題があります。AFNetworkingを使用してiPhoneからサーバーにビデオをアップロードする方法
以下は動画を投稿するためのコードです。
このコードは、アップロード画像の上で私のために働いたが、映像に来たときにされて、私は私が私のビデオをアップロードしようとすると、MP4
にコンバータへのビデオ
AVAssetExportSessionを取得するためにUIImagePickerControllerを使用し
を失敗します、私の投稿を受信していないと見られるサーバー。
私は理由を理解できませんか?
お願いします。ありがとう。
NSString *boundary = @"---011000010111000001101001";
NSMutableData *body = [NSMutableData data];
NSDictionary *headers = @{ @"content-type": @"multipart/form-data; boundary=---011000010111000001101001",
@"cache-control": @"no-cache"};
[body appendData:[[NSString stringWithFormat:@"--%@\r\n", boundary] dataUsingEncoding:NSUTF8StringEncoding]];
[body appendData:[[NSString stringWithFormat:@"Content-Disposition: form-data; name=\"%@\"\r\n\r\n", @"uid"] dataUsingEncoding:NSUTF8StringEncoding]];
[body appendData:[[NSString stringWithFormat:@"%@\r\n", name] dataUsingEncoding:NSUTF8StringEncoding]];
[body appendData:[[NSString stringWithFormat:@"--%@\r\n", boundary] dataUsingEncoding:NSUTF8StringEncoding]];
[body appendData:[[NSString stringWithFormat:@"Content-Disposition: form-data; name=\"%@\"\r\n\r\n", @"title"] dataUsingEncoding:NSUTF8StringEncoding]];
[body appendData:[[NSString stringWithFormat:@"%@\r\n", title] dataUsingEncoding:NSUTF8StringEncoding]];
[body appendData:[[NSString stringWithFormat:@"--%@\r\n", boundary] dataUsingEncoding:NSUTF8StringEncoding]];
[body appendData:[[NSString stringWithFormat:@"Content-Disposition: form-data; name=\"%@\"\r\n\r\n", @"note"] dataUsingEncoding:NSUTF8StringEncoding]];
[body appendData:[[NSString stringWithFormat:@"%@\r\n", note] dataUsingEncoding:NSUTF8StringEncoding]];
[body appendData:[[NSString stringWithFormat:@"--%@\r\n", boundary] dataUsingEncoding:NSUTF8StringEncoding]];
if (videoData) {
[body appendData:[[NSString stringWithFormat:@"--%@\r\n", boundary] dataUsingEncoding:NSUTF8StringEncoding]];
[body appendData:[[NSString stringWithFormat:@"Content-Disposition: form-data; name=%@.mp4; filename=%@.mp4\r\n", @"file", @"video1"] dataUsingEncoding:NSUTF8StringEncoding]];
[body appendData:[@"Content-Type: multipart/form-data; boundary=---011000010111000001101001\r\n\r\n" dataUsingEncoding:NSUTF8StringEncoding]];
[body appendData:[@"Content-Type: application/octet-stream\r\n\r\n" dataUsingEncoding:NSUTF8StringEncoding]];
[body appendData:[@"Content-Type: video/mp4\r\n\r\n" dataUsingEncoding:NSUTF8StringEncoding]];
[body appendData:videoData];
[body appendData:[[NSString stringWithFormat:@"\r\n"] dataUsingEncoding:NSUTF8StringEncoding]];
}
[body appendData:[[NSString stringWithFormat:@"\r\n--%@--\r\n", boundary] dataUsingEncoding:NSUTF8StringEncoding]];
NSError *errorFormAppend;
AFHTTPRequestSerializer *serializer = [AFJSONRequestSerializer serializer];
NSMutableURLRequest *request = [serializer multipartFormRequestWithMethod:@"POST" URLString:@"url" parameters:nil
constructingBodyWithBlock:^(id<AFMultipartFormData> formData) {
[formData appendPartWithHeaders:headers body:body];
NSError *error = errorFormAppend;
NSLog(@"errorFormAppend: %@", error);
// [formData appendPartWithFileData:imageData name:@"file[]" fileName:@"video1.mp4"
} error:nil];
NSString *contentType = [NSString stringWithFormat:@"multipart/form-data"];
[request addValue:contentType forHTTPHeaderField: @"Content-Type"];
[request setHTTPBodyStream:[NSInputStream inputStreamWithFileAtPath:[originVideoURL path]]];
[request setAllHTTPHeaderFields:headers];
[request setHTTPBody:body];
[request addValue:@"video/mp4" forHTTPHeaderField:@"Content-Type"];
[request setTimeoutInterval:60.0];
AFHTTPSessionManager *manager = [[AFHTTPSessionManager alloc] initWithSessionConfiguration:[NSURLSessionConfiguration defaultSessionConfiguration]];
manager.responseSerializer.acceptableContentTypes = [NSSet setWithObjects:@"multipart/form-data",@"text/html",nil];
[manager.requestSerializer setTimeoutInterval:60.0];
NSURLSessionUploadTask *uploadTask;
uploadTask = [manager
uploadTaskWithStreamedRequest:request
progress:^(NSProgress * _Nonnull uploadProgress) {
});
}
completionHandler:^(NSURLResponse * _Nonnull response, id _Nullable responseObject, NSError * _Nullable error) {
if (error) {
NSLog(@"Error video upload: %@", error);
} else {
if (200 == [responseObject[@"status_code"] integerValue]) {
NSLog(@"upload Success");
} else {
}
}
}];
[uploadTask resume];
ここでの問題は何ですか? – KKRocks
サーバーリターンエラーですが、画像上で作業します – williamliao