2016-11-30 69 views
0

我需要一些幫助,將使用JavaScript代碼將上傳的csv文件內容轉換爲數組。JavaScript:將上傳的CSV文件內容轉換爲陣列

以下是我迄今所做的:

我有一個CSV文件,它包含了所有的ClientID的列表例如

ClientIDs 
1 
2 
3 

使用下面的HTML代碼,我上傳的文件

<form id = "FileUpload" method="post" enctype="multipart/form-data"> 
    <div> <p><p> 
     <b>Select file containing all clientIDs:</b> 
     <input type="file" id="FileUpload" name="csv"/> 
     <input type="hidden" name="action" value="upload"/> 
     <input type="submit" name="FileUpload" value="Upload File"/> 
    </div> 
</form> 

現在,我卡在一部分。讀取和轉換文件內容的JS

if(document.getElementById("FileUpload").value != "") { 
    console.log("The file was uploaded"); 
    //Process the file and convert its contents to array 
} 

有人可以幫忙嗎?

在此先感謝。

+0

你可能想看看這裏的一些代碼示例:HTTPS ://developer.mozilla.org/en-US/docs/Using_files_from_web_applications – fet

回答

1

假設的是由新線分離的ID,你可以做這樣的事情:

var reader = new FileReader(); 

reader.onload = function (e) { 
    var arr = e.target.result.split("\n"); 
    // Continue processing... 
}; 

reader.readAsText(document.getElementById("FileUpload").files[0]); 

參見:https://developer.mozilla.org/en/docs/Web/API/FileReader

+0

感謝您的評論安德烈..我必須做的唯一改變是使用readAsText而不是readAsDataURL。 除此之外,它的所有工作現在。 –

+0

你是對的,我編輯了我的答案以反映這一點。 –

+0

嗨安德烈,另一個問題,答案工作正常,並在onload函數內顯示正確的值,但是當我嘗試打印該函數外的值時,該數組仍然顯示空值。 例如reader.onload =函數(e)中{ uploadedClientList = e.target.result.split( 「\ n」); 的console.log( 「帶1:」 + uploadedClientList); }; 的console.log( 「帶2:」 + uploadedClientList); 以1作品正常,但採取2仍然是空的 –