如何将文件上传到Web服务

时间:2013-07-10 10:38:32

标签: iphone ios web-services rest

如何将文件或图像或视频上传到API REST服务。

您有任何教程,示例或代码。

帮助我理解这个概念。

3 个答案:

答案 0 :(得分:2)

您可以使用NSURLConnectionASIHTTPRequest执行此操作,具体取决于Web服务如何接受该文件。

您应该提供有关您的问题的更多信息,以便我们知道要解释的内容。

答案 1 :(得分:0)

您可以上传如下文件:

NSData *data = [NSData dataWithContentsOfFile:filePath];
NSMutableString *urlString = [[NSMutableString alloc] initWithFormat:@"name=thefile&&filename=recording"];
[urlString appendFormat:@"%@", data];
NSData *postData = [urlString dataUsingEncoding:NSASCIIStringEncoding 
                                   allowLossyConversion:YES];
NSString *postLength = [NSString stringWithFormat:@"%d", [postData length]];
NSString *baseurl = @"https://www.yourWebAddress.com/yourServerScript.php"; 

NSURL *url = [NSURL URLWithString:baseurl];
NSMutableURLRequest *urlRequest = [NSMutableURLRequest requestWithURL:url];
[urlRequest setHTTPMethod: @"POST"];
[urlRequest setValue:postLength forHTTPHeaderField:@"Content-Length"];
[urlRequest setValue:@"application/x-www-form-urlencoded" 
          forHTTPHeaderField:@"Content-Type"];
[urlRequest setHTTPBody:postData];

NSURLConnection *connection = [NSURLConnection connectionWithRequest:urlRequest delegate:self];
[connection start];

NSLog(@"Started!");

答案 2 :(得分:0)

如果您想在服务器上传递图像,那么

 1) NSData *thumbData =  UIImagePNGRepresentation(imgPhoto.image);
 Then convert this NSData into encodeBase64WithData, then Pass to the Server.

如果您想在服务器上传递视频,那么

 2) NSData *videoData = [NSData dataWithContentsOfFile:YourVideoPath];
 Then convert this NSData into encodeBase64WithData, then Pass to the Server.

并且您必须记住,您必须使用@“POST”方法传递所有数据。否则会加载Long Url错误。