【发布时间】:2012-04-12 08:27:36
【问题描述】:
我目前需要将大文件从 iDevice 上传到服务器 API。为此,我尝试使用 ASIHTTPRequest 库,因为它自动支持在排队的块中上传大文件(在此之前,我只是一次创建了一个包含整个文件字节的 NSData 实例并将其附加到 POST 消息中,但这会导致由于过多的 RAM 使用量,应用程序在较大的文件上崩溃)。
问题是当你需要上传文件和添加文件到HTTP Post消息时,你需要使用的语法是这样的:
[theUploadRequest setFile:@"" forKey:@"videoupload"];
setFile 需要字符串格式的文件路径。我目前遇到的问题是,您似乎不允许简单地从不在应用程序沙箱中的文件中获取文件路径?因为我需要上传一个不在我的应用程序中但在标准相机胶卷之外的文件。
我尝试进行这个快速测试,看看我是否可以创建一个 NSData 对象并用相机胶卷中文件中的数据填充它,并提供这样的路径:
NSData *testData = [NSData dataWithContentsOfURL:theContent.defaultRepresentation.url];
NSLog(@"THE SIZE OF THE TEST DATA: %i", testData.length);
请注意,“theContent”是 ALAsset 的一个实例,是从相机胶卷中检索到的文件。这样的结果只是长度为 0,我想这意味着你不能简单地这样做。
有没有办法解决这个问题?还是我必须以某种方式将视频文件导入应用程序的沙箱?
【问题讨论】:
标签: iphone objective-c ios ipad asihttprequest