在Html / JS中将文本文件上载到输入

时间:2012-03-22 22:50:10

标签: javascript html html5

我有一个表单中的输入类型文件,我希望立即将其作为文本文件读取并用于更新文本输入的值:

HTML:

<input type=file id='uploadfile' name='uploadfile' onchange="uploadCoordinates(this.form)">

JS:

function uploadCoordinates(form) {
       var file=form.uploadfile.value;
       var reader=new FileReader();
       reader.readAsText(file.value);
       form.coordinates.value=reader.result; 
}

Howveer,我收到以下错误:未捕获的异常:[Exception ...“无法转换JavaScript参数arg 0 [nsIDOMFileReader.readAsText]”nsresult:“0x80570009(NS_ERROR_XPC_BAD_CONVERT_JS)”location:“JS frame :: {{ 3}} :: uploadCoordinates :: line 142“data:no]

2 个答案:

答案 0 :(得分:1)

试试这个错误,你试图读取value.value

正确的代码是

JS: function uploadCoordinates(form) {
       var file=form.uploadfile.value;
       var reader=new FileReader();
       reader.readAsText(file);
       form.coordinates.value=reader.result; }

答案 1 :(得分:0)

通过修复错误来实现此目的的更好方法是进一步修改代码和@ cons0ul的代码。

var rPreviousText;
function uploadCoordinates(formVal) {
   var file = form.uploadfile;
   var reader = new FileReader();
   reader.readAsText(file.value);
   form.coordinates.value = reader.result;
   rPreviousText = reader.result;
   showReadersText(reader.result);
}
function showReadersText(val) {
   alert(val); //I recommend using something better than alert.
}

这比任何代码都更可靠,并且有一种显示txt文件中的阅读器文本的方法。如果您不需要showReadersText(),只需删除它并将其替换为您需要的任何代码。请注意,FileReader在一半以上的主流浏览器中不适合浏览器。它适用于Chrome,Firefox和IE(至少在我测试时)。