【发布时间】:2011-07-12 14:05:03
【问题描述】:
我设置了一个 Apache 服务器,将页面放在服务器上,问题就解决了。 所以我知道这个问题是由 chrome 中的安全设置引起的。
现在我想知道,是否可以让本地网页访问本地文件?
我将制作一个允许将本地图像拖到其上的页面。 这是我的代码,在 chrome 中不起作用
问题是没有触发 reader.onload 事件,而是触发了 onerror。
那是什么原因呢?以及如何解决? 非常感谢。
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);
}
【问题讨论】:
-
onerror 事件是否包含任何错误信息?
-
onerror 返回 SECURITY_ERR
-
这意味着您正在使用 file:/// 协议运行本地文件。 Chrome 故意否认这一点,老实说,我不确定安全隐患是什么。如果您从本地服务器运行它,它应该可以工作。 psema4 使用 --allow-file-access-from-files 的想法很好,但根据我的经验,该标志不起作用:-/
-
Chrome 认为这是一项功能,而不是错误。请参阅 blog.chromium.org/2008/12/… 和 code.google.com/p/chromium/issues/detail?id=47416。两种解决方案:使用 Web 服务器或使用 FF。
标签: javascript html filereader