我正在使用一个自定义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
发送blobs,是否可以保证切片操作将在我尝试发送每个请求中的数据之前完成。在创建文件时,File
对象会加载整个文件吗(当然不会?)File.slice
是否查找到参数指定的位置,然后读取其中的信息?文档并没有给我提供关于它是如何实现的线索。
https://stackoverflow.com/questions/24833487
复制相似问题