【问题标题】:Video is not uploading on server in iOS视频未在 iOS 的服务器上上传
【发布时间】:2015-04-10 10:40:31
【问题描述】:

我正在尝试在 PHP 服务器上上传视频,但它没有上传。我的图像上传代码工作正常,但是当我尝试上传视频时它向我发送空白响应。我无法理解我的问题代码。请帮我解决这个问题。我没有找到这个问题的任何答案。

- (void)uploadVideo
{
  NSData *imageData = videoData;
  NSLog(@"imageData = %@",videoData);

  NSString *urlString = @"MyURL";
  NSLog(@"url=== %@", urlString);

  NSMutableURLRequest *request = [[NSMutableURLRequest alloc]init];

  request = [[NSMutableURLRequest alloc] init];
  [request setURL:[NSURL URLWithString:urlString]];
  [request setHTTPMethod:@"POST"];

  NSString *boundary = @"---------------------------14737809831466499882746641449";
  NSString *contentType = [NSString stringWithFormat:@"multipart/form-data; boundary=%@",boundary];
  [request addValue:contentType forHTTPHeaderField: @"Content-Type"];

  /*  body of the post */

  NSMutableData *body = [NSMutableData data];
  [body appendData:[[NSString stringWithFormat:@"\r\n--%@\r\n",boundary] dataUsingEncoding:NSUTF8StringEncoding]];
  [body appendData:[[NSString stringWithFormat:@"Content-Disposition: form-data; name=\"any_media\"; filename=\"%@\"\r\n",filename]dataUsingEncoding:NSUTF8StringEncoding]];
  [body appendData:[@"Content-Type: application/octet-stream\r\n\r\n" dataUsingEncoding:NSUTF8StringEncoding]];
  [body appendData:[NSData dataWithData:imageData]];
  [body appendData:[[NSString stringWithFormat:@"\r\n--%@--\r\n",boundary] dataUsingEncoding:NSUTF8StringEncoding]];

  [request setHTTPBody:body];

  NSURLResponse *response;
  NSError *error =nil;

  NSData *returnData = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error];
  NSString *returnString = [[NSString alloc] initWithData:returnData encoding:NSUTF8StringEncoding];

  NSLog(@"result from webservice:::--> %@", returnString);


  NSDictionary *parsingResultLogin = [NSJSONSerialization JSONObjectWithData:returnData options:0 error:nil];
  NSLog(@"parsingResultLogin = %@",parsingResultLogin);
}

【问题讨论】:

  • 查看 Web 服务器响应详细信息会更好。比如http状态码。在这种情况下跟踪问题的最佳方法是使用一些流量嗅探器工具并查看应用程序在请求中发送的具体内容以及服务器响应的内容

标签: ios objective-c xcode upload uiimagepickercontroller


【解决方案1】:

也将内容长度添加到请求中。

NSString *postLength = [NSString stringWithFormat:@"%lu", (unsigned long)[body length]];
[request setValue:postLength forHTTPHeaderField:@"Content-Length"];

还要确保imageData != nil;

【讨论】:

  • 我检查了一切。我正在用小视频进行测试。正文中有内​​容,但没有上传。
  • 我添加了您的代码并对其进行了测试,但它也无法正常工作.. :(
  • 我在设备上测试过它,但我仍然得到 returnData & returnString 空/Null。设备正在从图库中打开 .mov 视频文件。
  • 我知道您的视频是零。你能检查一下 imageData 不为零吗
  • 我已经检查过了,图像数据不是 nil 并且 body 也有一些内容。
猜你喜欢
  • 1970-01-01
  • 2014-02-18
  • 1970-01-01
  • 2018-08-04
  • 1970-01-01
  • 2014-10-17
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多