【发布时间】:2014-09-10 02:13:12
【问题描述】:
我正在使用自定义 API 来允许用户上传文件(希望是任意大小)。如果文件太大,它将被分块,并在对服务器的多个请求中进行处理。
根据网上的许多示例,我正在编写使用 File 和 FileReader (HTML5) 的代码。一般来说(根据我在网上阅读的内容)对于分块文件传输,人们首先会从他们的文件对象中获取一团数据
var file = $('input[type=file]')[0].files[0];
var blob = file.slice(start,end)
然后使用FileReader 读取blob readAsArrayBuffer(blob) 或readAsBinaryString(blob)
最后在FileReader.onload(e) 方法中,将数据发送到服务器。对文件中的所有块重复此过程。
我的问题是
为什么我需要使用FileReader?如果我不使用它,而只是使用File.slice 发送 blob,是否可以保证在我尝试在每个请求中发送数据之前完成切片操作。 File 对象在创建时是否加载整个文件(肯定不是?)。 File.slice是不是先寻找到参数规定的位置,然后把信息读进去?文档没有给我关于它是如何实现的线索。
【问题讨论】:
标签: javascript html algorithm file-upload chunking