2012-03-22 89 views
1

我有一个表单的输入类型的文件,我想立即解读为一个文本文件,用于更新文本输入的值输入:上传文本文件的HTML/JS

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,我得到以下错误:未捕获的异常:[异常... “无法转换的JavaScript参数arg 0 nsIDOMFileReader.readAsText]” nsresult:“0x8057000 9(NS_ERROR_XPC_BAD_CONVERT_JS)”的位置: “JS框架:: https://portal.nersc.gov/project/als/ShirleyXAS/ShirleyXAS.js :: uploadCoordinates ::行142” 的数据:无]

+0

可能重复的[是否有可能上传文本文件输入HTML/JS?](http://stackoverflow.com/questions/19038919/is-it-possible-to-upload-a-text-文件对输入的-HTML-JS) – 2013-09-27 05:01:08

回答

1

试试这个有错误,您正在试图读取value.value

正确的代码

JS: function uploadCoordinates(form) { 
     var file=form.uploadfile.value; 
     var reader=new FileReader(); 
     reader.readAsText(file); 
     form.coordinates.value=reader.result; } 
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中运行良好(至少在我测试它们时)。