[更新]在Chrome中使用FileReader

时间:2011-07-12 14:05:03

标签: javascript html filereader

我设置了一个Apache服务器,将页面放在服务器上,问题解决了。 所以我知道这个问题是由chrome中的安全设置引起的。

现在我想知道,是否可以让本地网页访问本地文件?

我打算创建一个允许将局部图像拖到其上的页面。 这是我的代码,它在chrome

中不起作用

问题是reader.onload事件没有触发,而是反过来。

那是什么原因?以及如何解决它? 非常感谢。

var oImg=document.getElementById("img1");

oImg.addEventListener('dragover', function(e) {
    e.stopPropagation();
    e.preventDefault();
}, false);

oImg.addEventListener('drop', handleDrop, false);

function handleDrop(e) {
    e.stopPropagation();
    e.preventDefault();

    var thisfile  = e.dataTransfer.files[0],
    reader = new FileReader();

    reader.onload = (function(thisfile){
        return function(e){
            oImg.src = e.target.result;
            }
        }
    })(thisfile);

    reader.readAsDataURL(thisfile);
}

2 个答案:

答案 0 :(得分:3)

我不确定此选项是否仍然可用(AFAIK) - 尝试使用开关打开chrome - 允许文件从文件访问

存在可能与您的问题相关的开放式issue。发布此问题的人越多,修复的可能性就越大 - 请参阅评论#1。

答案 1 :(得分:0)

问题似乎是围绕file://

的安全限制

这是另一个讨论错误的堆栈溢出问题。

Uncaught Error: SECURITY_ERR: DOM Exception 18 when I try to set a cookie