实现 FileReader 的现代浏览器可以做到这一点。要测试您的浏览器,请检查是否定义了 window.FileReader。
这是我几天前为了做到这一点而编写的一些代码。在我的例子中,我只是将一个文件拖到 HTML 元素上,这里引用为 panel.in1,但您也可以使用(参见下面的参考资料)。
if (window.FileReader) {
function dragEvent (ev) {
ev.stopPropagation ();
ev.preventDefault ();
if (ev.type == 'drop') {
var reader = new FileReader ();
reader.onloadend = function (ev) { panel.in1.value += this.result; };
reader.readAsText (ev.dataTransfer.files[0]);
}
}
panel.in1.addEventListener ('dragenter', dragEvent, false);
panel.in1.addEventListener ('dragover', dragEvent, false);
panel.in1.addEventListener ('drop', dragEvent, false);
}
它是 reader.onloadend 函数,它获取您在事件处理程序中作为 this.result 恢复的文件的文本。
我从 MDN 获得了有关如何执行此操作的大部分机制:https ://developer.mozilla.org/en-US/docs/Using_files_from_web_applications
这段代码显示了读取文件的基础知识,文件本身被拖到文本区域中,我认为这是一个更好的界面,而不是必须通过选择文件机制,但这些机制同样适用于选择要读取的文件。
这是我对类似问题的回答:Get text file content using javascript