我有一个表单中的输入类型文件,我希望立即将其作为文本文件读取并用于更新文本输入的值:
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]
答案 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(至少在我测试时)。