iOS:如何加载更大文件的一部分进行上传?
问题描述:
我正在处理ALAsset的大型实例,我正在尝试将资源分成更小的块进行上传。iOS:如何加载更大文件的一部分进行上传?
什么是一个很好的方法来将大文件分成更小的块而不需要将整个文件加载到内存中?
答
我在文本编辑器中做了这个,但它应该编译。 NSFileHandle是UNIX文件实用程序的一个薄包装器。
#define CHUNK_SIZE 2048
NSFileHandle *fh = [NSFIleHandle fileHandleForReadingAtPath:<the file path as a
string>];
while(YES) {
NDSata *chunk = [fh readDataOfLength:CHUNK_SIZE];
NSUInteger length = [chunk length];
if(length == 0) break; // done
// send the data
}
fh = nil; // under arc this releases the object
+0
谢谢你的回答,大卫。我也在思考NSFileHandle的方向。我一定会试试这个。 – 2012-07-15 17:32:35
读取到缓冲区,写入缓冲区到web请求,重复 – 2012-07-15 06:58:49
感谢您的回应科尔。我意识到这对于大多数开发人员来说是微不足道的,但是你能否在一个答案中详细说明(可能是用一个简化的代码片断)。这样我就可以接受答案并将问题标记为已回答。 – 2012-07-15 07:13:13
对不起,但我不在obj-c中编码,只有C++和c#。 – 2012-07-15 07:33:15