Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/469.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文件阅读器不';t在大文件上触发事件_Javascript_Html_Events_Filereader_Large Files - Fatal编程技术网

Javascript文件阅读器不';t在大文件上触发事件

Javascript文件阅读器不';t在大文件上触发事件,javascript,html,events,filereader,large-files,Javascript,Html,Events,Filereader,Large Files,我正在尝试播放客户端计算机上的视频文件。问题是获取绝对路径非常困难,因此我可以将其放入video的src或object的data属性中。最终我找到了FileReader对象,它可以很好地处理小文件。但是,它在读取大文件时(到目前为止超过200MB)不会触发onload事件。无错误,FileReader.onerror不会触发任何操作,try/catch没有帮助。开发者控制台没有显示任何内容 我认为这与每个浏览器配置上的最大文件大小有关,但我找不到配置的方法。帮忙 这是密码 function on

我正在尝试播放客户端计算机上的视频文件。问题是获取绝对路径非常困难,因此我可以将其放入
video
src
object
data
属性中。最终我找到了FileReader对象,它可以很好地处理小文件。但是,它在读取大文件时(到目前为止超过200MB)不会触发onload事件。无错误,FileReader.onerror不会触发任何操作,try/catch没有帮助。开发者控制台没有显示任何内容

我认为这与每个浏览器配置上的最大文件大小有关,但我找不到配置的方法。帮忙

这是密码

function onclick()
{
            var file_dialog = document.getElementById("file_dialog");
            var path_dialog = document.getElementById("path_dialog");
            var video_player = document.getElementById("video_player");
            var begin_video = document.getElementById("begin_video");
            var reading_progress = document.getElementById("reading_progress");
            file_dialog.onchange = function ()
            {
                begin_video.disabled = file_dialog.files.length == 0 || path_dialog.files.length == 0;
            };
            path_dialog.onchange = file_dialog.onchange;
            begin_video.onclick = function ()
            {
                begin_video.disabled = true;
                var reader = new FileReader();
                reader.onload = function (e)
                {
                    video_player.src = e.target.result;
                    begin_video.disabled = false;
                };
                reader.onprogress = function (e)
                {
                    reading_progress.textContent = "Reading... " + (Math.floor(e.loaded / e.total * 10000) / 100) + "%";
                };
                reader.onloadend = function (e)
                {
                    if (e.target.error != null)
                        reading_progress.textContent = e.target.error.code;
                    else
                        reading_progress.textContent = "FINISHED!!!";
                };
                reader.onerror = alert;
                reader.readAsDataURL(file_dialog.files[0]);
                var reader2 = new FileReader();
                reader2.onload = function (e)
                {

                };
            };
}

没有这种浏览器配置设置。 我还使用过FileReader和大文件(高达50MB),浏览器的行为非常不同:

  • Chrome=>表现出色,是最“灵敏”的
  • Firefox=>没有Chrome浏览器那么好,内存消耗很高,但仍然有效
  • IE=>只要文件小于15 MB,浏览器就可以工作,只是没有处理文件-没有反馈,没有引发任何事件
  • 可能是内存问题——用不同的机器测试相同的文件,内存更少,IE拒绝在5MB文件下工作