我正在使用自定义API来允许用户上传文件(希望是任意大小).如果文件很大,它将被chunkfied,并在对服务器的多个请求中处理.
我正在编写使用File和FileReader(HTML5)的代码,根据许多在线示例.一般来说(从我在网上看到的)对于一个chunkfied文件传输,人们将首先从他们的文件对象中获取一大块数据
var file = $('input[type=file]')[0].files[0];
var blob = file.slice(start,end)
Run Code Online (Sandbox Code Playgroud)
然后使用a FileReader来读取blob readAsArrayBuffer(blob)或readAsBinaryString(blob)
最后在FileReader.onload(e)方法中,将数据发送到服务器.对文件中的所有块重复此过程.
我的问题是
为什么我需要使用FileReader?如果我不使用它,并简单地发送blob File.slice,是否有任何保证在我尝试在每个请求中发送数据之前完成切片操作.File对象是否在创建时加载整个文件(当然不是?).是否File.slice寻求参数规定的位置,然后读取信息?该文档没有给我一个关于它如何实现的线索.