2012-03-22 47 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中運行良好(至少在我測試它們時)。