视频不在iOS上的服务器上传
问题描述:
我想上传PHP服务器上的视频,但它不是uploading.My图像上传代码工作正常,但是当我试图上传视频时它发送给我空白response.I不是能够理解我的代码有什么问题。请帮我解决这个问题。我没有找到任何关于这个问题的答案。视频不在iOS上的服务器上传
- (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);
}
答
将内容长度也添加到请求中。
NSString *postLength = [NSString stringWithFormat:@"%lu", (unsigned long)[body length]];
[request setValue:postLength forHTTPHeaderField:@"Content-Length"];
而且还确保imageData != nil;
这将是一个更好的方式,看看Web服务器响应的细节。如http状态码。在这种情况下追踪问题的最好方法是使用一些流量嗅探器工具,并查看应用程序发送请求的具体内容以及服务器响应的内容 – heximal 2015-02-10 12:04:13