JavaScript中的文件切片会导致空blob
我正在实现一个基于浏览器的分块文件上传程序。要打开我正在使用的文件JavaScript中的文件切片会导致空blob,javascript,html,chunking,Javascript,Html,Chunking,我正在实现一个基于浏览器的分块文件上传程序。要打开我正在使用的文件和这段代码(简化): 我将文件分割成块,但没有将块读入内存(不是显式地) 问题:偶尔(对于不到0.1%的上载文件),从基础文件切片的区块为空。例如,在上传大文件时,事情进展顺利,然后在文件的中间调用: var _blob = _file.slice(chunk.start, chunk.end, _file.type); 结果为空切片(\u blob.size为0)。将此类blob发送到服务器(.NET 4.6)会导致Reque
和这段代码(简化):
我将文件分割成块,但没有将块读入内存(不是显式地)
问题:偶尔(对于不到0.1%的上载文件),从基础文件切片的区块为空。例如,在上传大文件时,事情进展顺利,然后在文件的中间调用:
var _blob = _file.slice(chunk.start, chunk.end, _file.type);
结果为空切片(\u blob.size
为0)。将此类blob发送到服务器(.NET 4.6)会导致Request.InputStream
为空。我正在发送B国家数据:
_xhr.setRequestHeader('content-type', 'application/octet-stream');
_xhr.send(_blob);
我还应该提到,调用\u file.slice
会再次生成相同的空blob。我可以在Chrome57、Chrome60(Win和Mac)、MacSafari10.1.1和Edge 15中观察到这一点。也可以使用其他浏览器
有什么不对劲?我正在考虑的事情:
- 文件正在使用中
- 文件/磁盘已损坏
- 同时,blob由JavaScript引擎进行GCed—如果可能的话,如何确保它不是GCed
- 浏览器错误(我发现了这个,但不确定是否相关:)
_xhr.setRequestHeader('content-type', 'application/octet-stream');
_xhr.send(_blob);