2016-10-12 47 views
0

我有一個Web窗體,用戶正在上傳一個和兩個文件。每個文件都可以通過文件輸入或將文本粘貼到文本框中。使用粘貼的字符串或文件上傳

我怎樣才能標準化輸入,使它以相同的方式發送到服務器,而不管用什麼方法輸入?我希望始終向服務器發送一種類型的數據,包括帶文件的多部分請求或帶文件的JSON請求作爲字符串。怎麼樣?

現在,我正在嘗試使用FileReader讀取文件,但我對處理異步讀取感到困惑。

function getPrimaryFileString() { 
    if(pasted()) { 
     return document.getElementById("pastedPrimaryInputFile").value; 
    } else { 
     var reader = new FileReader(); 
     var file = document.getElementById("primaryInputFile").files[0]; 
     reader.readAsText(file); 

     filestring = reader.contents; 

     return filestring; 
    } 
} 

我知道,我應該有一個onload回調,但我不知道我該怎麼做,並能返回filestring這樣。

回答

0

因此,對於任何與此有關的人來說,我找到了一個解決方案。我爲每個文件輸入添加了一個onchange方法,如下所示。

<input type="file" 
     id="primaryInputFile" 
     name="primaryInputFile" 
     size="10" 
     onchange="mainFileChanged()" /> 

函數剛剛告訴全局聲明的FileReader來讀取更新的值。

function mainFileChanged() { 
    console.log("Main file change recorded"); 
    mainFileInput.readAsText(document.getElementById('primaryInputFile').files[0]); 
} 

然後,我只是在需要時才返回讀者的內容。這不是一個完美的解決方案,但它的工作原理。

相關問題