Iphone 将示例视频文件上载到服务器时出现问题

Iphone 将示例视频文件上载到服务器时出现问题,iphone,Iphone,我想上传样本视频文件到服务器,我按下了按钮。我使用的代码如下所示 -(IBAction)buttonAction { NSMutableURLRequest* post = [NSMutableURLRequest requestWithURL: [NSURL URLWithString: @"http://115.111.27.206:8081/vblo/upload.jsp"]]; [post setHTTPMethod: @"POST"]; NSString *boun

我想上传样本视频文件到服务器,我按下了按钮。我使用的代码如下所示

-(IBAction)buttonAction
{
NSMutableURLRequest* post = [NSMutableURLRequest requestWithURL: [NSURL URLWithString: @"http://115.111.27.206:8081/vblo/upload.jsp"]];
    [post setHTTPMethod: @"POST"];


    NSString *boundary = [NSString stringWithString:@"---------------------------358734318367435438734347"];

    NSString *contentType = [NSString stringWithFormat:@"multipart/form-data; boundary=%@",boundary];

    [post addValue:contentType forHTTPHeaderField: @"Content-Type"];


    NSMutableData *body = [NSMutableData data];

    [body appendData:[[NSString stringWithFormat:@"\r\n--%@\r\n",boundary] dataUsingEncoding:NSUTF8StringEncoding]];

    [body appendData:[[NSString stringWithString:@"Content-Disposition: form-data; name=\"videofile\"; filename=\"videofile.3gp\"\r\n"] dataUsingEncoding:NSUTF8StringEncoding]];

    [body appendData:[[NSString stringWithString:@"Content-Type: application/octet-stream\r\n\r\n"] dataUsingEncoding:NSUTF8StringEncoding]];

    [body appendData:[[[NSBundle mainBundle] pathForResource:@"video" ofType:@"3gp"] 
                      dataUsingEncoding: NSASCIIStringEncoding]];

    [body appendData:[[NSString stringWithFormat:@"\r\n--%@--\r\n",boundary] dataUsingEncoding:NSUTF8StringEncoding]];


    [post setHTTPBody:body];

    NSData *returnData = [NSURLConnection sendSynchronousRequest:post returningResponse:nil error:nil];

    NSString *returnString = [[NSString alloc] initWithData:returnData encoding:NSUTF8StringEncoding];
    UIAlertView *statusAlert = [[UIAlertView alloc]initWithTitle:nil message:(NSString *)returnString delegate:self cancelButtonTitle:@"cancel" otherButtonTitles:@"ok", nil];
            [statusAlert show];

您还必须按如下方式设置HTTP标头:

NSMutableURLRequest* post = [NSMutableURLRequest requestWithURL: [NSURL URLWithString: @"http://115.111.27.206:8081/vblo/upload.jsp"]];
[post setHTTPMethod: @"POST"];


NSString *boundary = [NSString stringWithString:@"---------------------------358734318367435438734347"];

NSString *contentType = [NSString stringWithFormat:@"multipart/form-data; boundary=%@",boundary];

[post addValue:contentType forHTTPHeaderField: @"Content-Type"];


NSMutableData *body = [NSMutableData data];

[body appendData:[[NSString stringWithFormat:@"\r\n--%@\r\n",boundary] dataUsingEncoding:NSUTF8StringEncoding]];

[body appendData:[[NSString stringWithString:@"Content-Disposition: form-data; name=\"videofile\"; filename=\"videofile.3gp\"\r\n"] dataUsingEncoding:NSUTF8StringEncoding]];

[body appendData:[[NSString stringWithString:@"Content-Type: application/octet-stream\r\n\r\n"] dataUsingEncoding:NSUTF8StringEncoding]];


[body appendData:[NSData dataWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"video" ofType:@"3gp"]]];

[body appendData:[[NSString stringWithFormat:@"\r\n--%@--\r\n",boundary] dataUsingEncoding:NSUTF8StringEncoding]];


[post setHTTPBody:body];

NSData *returnData = [NSURLConnection sendSynchronousRequest:post returningResponse:nil error:nil];

NSString *returnString = [[NSString alloc] initWithData:returnData encoding:NSUTF8StringEncoding];

NSLog(returnString);

或者,如果您需要异步请求,则可以调用NSURLConnection的initWithRequest方法。

谢谢您的回复。我修改了上述代码,我得到警告和应用程序终止。我是iphone应用程序的初学者,所以我感到困惑。请帮助我。嗨,我没有看到你以前加载的是什么数据,你加载的是字符串作为数据而不是视频数据,我已经在上面的代码中更正了它,现在试试..是的,现在我更正了,但它作为上传视频提供。该代码足以上传示例视频吗。我想从服务器上传的mesg应该是成功的,我不是这样。嗯,你能在服务器上看到上传的视频文件吗?您是基于成功上传还是失败上传从jsp返回一些消息?我以前用上面的代码上传过音频文件,效果很好,虽然我的服务器端是php..是的,从jsp mesg上传应该是成功的,我不是这样。我并没有看到我在服务器上使用的视频文件。