0

iPhone (Xcode) から ASP.NET へのビデオのアップロードに関連する投稿は見たことがありません。これまでのところ、Facebook と Youtube と PHP だけです。

私はビデオをアップロードする一例に従いましたが、php (http://www.youtube.com/watch?v=zqRnnwFpRqk) にアップロードしました

しかし、どういうわけかうまくいきません。ファイルはヘッダーだけでビデオ コンテンツなしで ASP.NET 側に到達しました。投稿ヘッダーを含むファイルをテキスト エディターで開いて見ることができます。

何が間違っている可能性がありますか?

NSCharacterSet *mov = [NSCharacterSet characterSetWithCharactersInString:@".MOV"];
self.mediaPath = [self.mediaPath stringByTrimmingCharactersInSet:mov];
NSData *videoData = [NSData dataWithContentsOfFile:[[NSBundle mainBundle] pathForResource:self.mediaPath ofType:@"MOV"]];
NSString *urlString = @"http://mysite.com/mobileupload.aspx";
NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init];
[request setURL:[NSURL URLWithString:urlString]];
[request setHTTPMethod:@"POST"];
NSString *boundary = @"---------------------------14737809831466499882746641500";
NSString *contentType = [NSString stringWithFormat:@"multipart/form-data; boundary=%@",boundary];
[request addValue:contentType forHTTPHeaderField: @"Content-Type"];
NSString *platformType = kMETRO_PLATFORM_TYPE_IOS;
[request addValue:platformType forHTTPHeaderField:@"SD-Platform"];
mediaType = kTYPE_VIDEO;
[request addValue:mediaType forHTTPHeaderField:@"SD-Category"];
videoFilename = [NSString stringWithFormat:@"%@%@", [self GenerateUuid], @".mov"];
[request addValue:videoFilename forHTTPHeaderField:@"SD-Filename"];
self.mediaPath = [NSString stringWithFormat:@"%@%@", kVIDEOS_URL, videoFilename];
NSMutableData *body = [NSMutableData data];
[body appendData:[[NSString stringWithFormat:@"\r\n--%@\r\n",boundary] dataUsingEncoding:NSUTF8StringEncoding]];
[body appendData:[[NSString stringWithFormat:@"Content-Disposition: form-data; name=\"userfile\"; filename=\"%@\"\r\n", videoFilename] dataUsingEncoding:NSUTF8StringEncoding]];
[body appendData:[@"Content-Type: application/octet-stream\r\nContent-Transfer-Encoding: binary\r\n" dataUsingEncoding:NSUTF8StringEncoding]];
[body appendData:[NSData dataWithData:videoData]];
[body appendData:[[NSString stringWithFormat:@"\r\n--%@--\r\n",boundary] dataUsingEncoding:NSUTF8StringEncoding]];
[request setHTTPBody:body];
NSData *returnData = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil];

ASP.NET コード ビハインドでは、これが私が持っているものです

string uploadPath = "~/upload/";
HttpFileCollection fileCollection = Request.Files;
fileCollection[0].SaveAs(Server.MapPath(uploadPath + fileCollection[0].FileName]);

それで全部です。

4

1 に答える 1

0

より良い解決策を見つけるのに役立つリンクを共有したいと思います。指定されたリンクには、.net サーバーにオーディオをアップロードするためのコードがありますが、わずかな変更でビデオをアップロードする場合と同じように機能します。

コードの残りの部分は、 iPhone の Web サーバーに最大 5 mb のサイズの mp3 ファイルをアップロードする方法にあります。

オーディオをアップロードするには:

[request addData:audioData withFileName:audioName andContentType:@"audio/caf" forKey:@"audioFile"];

ビデオをアップロードするには:

[request addData:audioData withFileName:videoName andContentType:@"video/mov" forKey:@"videoFile"];
于 2012-08-14T04:59:20.467 に答える