Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/454.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/38.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 HTML5-上传文件而不在客户端进行处理_Javascript_Html_Asynchronous_File Upload_Large Files - Fatal编程技术网

Javascript HTML5-上传文件而不在客户端进行处理

Javascript HTML5-上传文件而不在客户端进行处理,javascript,html,asynchronous,file-upload,large-files,Javascript,Html,Asynchronous,File Upload,Large Files,我正在构建一个应用程序,通过html5和xhr将大文件上传到服务器 所以,当上传图片时,我知道怎么做 但是如果你想上传大文件(>100MB),就用户体验而言,这是非常糟糕的 表格: <input type="file" id="input"> <script> input.addEventListener('change', function () { console.log('changed'); }); </script>

我正在构建一个应用程序,通过
html5
xhr
将大文件上传到服务器

所以,当上传图片时,我知道怎么做

但是如果你想上传大文件(>100MB),就用户体验而言,这是非常糟糕的

表格:

<input type="file" id="input">
<script>
    input.addEventListener('change', function () {
        console.log('changed');
    });
</script>
问题:(在我的MacBook Air上测试,Chrome 59)

根据我的观察,浏览器处理1MB数据的时间大约为166毫秒。不过,我只想将原始的二进制数据上传到服务器

有没有一种方法可以直接在浏览器中选择并上传一些文件?
(浏览器完成处理整个文件内容时无需等待)

只有在处理特定文件时才会出现问题

在我的例子中,我试图上传
googlechrome.app
,在MacOS上几乎没有足够大的应用

但问题是,
。app
不是一个文件,而是一个包含其内容引用的文件夹

因此,每次我选择此类
文件
时,我的浏览器(或系统,不确定)都会自动创建应用程序所有内容的zip版本。这是消耗时间的地方


常规实体文件(如大小为8 GB的电影)没有问题-通过
文件API获取此类文件需要几毫秒的时间。

只有在处理特定文件时才会出现问题

在我的例子中,我试图上传
googlechrome.app
,在MacOS上几乎没有足够大的应用

但问题是,
。app
不是一个文件,而是一个包含其内容引用的文件夹

因此,每次我选择此类
文件
时,我的浏览器(或系统,不确定)都会自动创建应用程序所有内容的zip版本。这是消耗时间的地方

像8GB大小的电影这样的常规实体文件没有问题-通过
文件API获取此类文件是一个毫秒级的问题

1) Select file of 400 MB.
2) 'onchange' event fired.
3) Upload file via XHR and show progress.
1) Select file of 360 MB weight.
2) Get stuck somewhere for 1 min.
3) Event 'onchange' fired.