Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/362.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用JavaScript加载大型本地文件?_Javascript_File_Blob_Local_Filereader - Fatal编程技术网

如何使用JavaScript加载大型本地文件?

如何使用JavaScript加载大型本地文件?,javascript,file,blob,local,filereader,Javascript,File,Blob,Local,Filereader,有没有一种方法可以在JavaScript中本地处理非常大的文件(如2GB及以上)而不会使浏览器崩溃 *我知道input标记和FileReader API,但它似乎没有Node.js streams那样的功能。使您能够异步读取文件内容。对于大文件(在您的情况下为2GB),您可以使用函数/方法FileReader.readAsArrayBuffer()读取内存中某个文件的特定块大小,因此这不会使浏览器崩溃,这是一个很好的示例。您打算对该文件做什么?只是好奇。这主要是假设目前的未来发展,但我想问这个问

有没有一种方法可以在JavaScript中本地处理非常大的文件(如2GB及以上)而不会使浏览器崩溃


*我知道input标记和FileReader API,但它似乎没有Node.js streams那样的功能。

使您能够异步读取文件内容。对于大文件(在您的情况下为2GB),您可以使用函数/方法
FileReader.readAsArrayBuffer()
读取内存中某个文件的特定块大小,因此这不会使浏览器崩溃,这是一个很好的示例。

您打算对该文件做什么?只是好奇。这主要是假设目前的未来发展,但我想问这个问题的原因是想从我的谷歌数据堆中提取数据。显然,我使用它的任何一种功能都是一次提取少量数据,例如“在特定位置查找所有日期”。你为什么要求js在服务器端发现的琐碎工作下工作?lucas无需网络上传,因此降低了数据成本+可以在慢速网络环境下完成。用户可以分担处理负担,而不是让服务器所有者承担使用该服务的每个人的负担。不喜欢将私有数据上载到外部服务器。您可以将长时间运行的任务(本例中为大文件处理)卸载给Web Workers()。web worker在另一个线程(上下文)中运行,因此它不会阻止主线程(浏览器)。这里的重要部分是Blob的
slice()
方法。如果你给readAsArrayBuffer传递了一个太大的Blob,它也会同样崩溃。