0

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

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

帮助我理解这个概念。

4

3 回答 3

2

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

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

于 2013-07-10T10:40:26.773 回答
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!");
于 2013-07-10T10:42:01.677 回答
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 错误。

于 2013-07-10T10:50:57.093 回答