2016-03-16 54 views
0

將上傳文本file到瀏覽器時我想檢查文件內容並在發送到Web服務之前對其進行操作。瀏覽器上傳後操縱文件對象的主體

其他細節:

我上傳它,我想添加含有元信息的第一行標準化的CSV文件,如果它缺少。之後,我將csv反序列化爲一個json對象數組,而屬性以元信息命名。

編輯1:添加的代碼,圖書館&框架的信息

我使用流星,我用papaparse將數據轉換從CSV到JSON。

查看:

input(type='file' name='import idx' class='myFileInput') 

JS:

'change .myFileInput': function(event, template) { 
    FS.Utility.eachFile(event, function(file) { 
    console.log(file); // works; contains a FILE object 
    // TODO: check if file has a valid structure & add the meta data if it's missing 
    var REObjects = Papa.parse(file, {    
     delimiter: "#", 
     header: true, 
     complete: function(results, file) { 
      console.log("Parsing complete:", results, file); // works, contains JSON data 
     } 
    }); 
}); 
+0

等待,你發送CSV或JSON服務器? – dandavis

+0

JSON(我上傳了csv文件並將其轉換爲json) – Ronin

+0

您將它作爲JSON.parse()之前的字符串正確嗎?只是檢查該字符串,並在需要之前解析頭(如果需要)解析()ing – dandavis

回答

0

這爲我工作。

'change .myFileInput': function(event, template) { 
    FS.Utility.eachFile(event, function(file) { 
    console.log(file); // works; contains a FILE object 

    // declare the first line of the file object 
    var metaInfo = "some#delimited#meta#info#"; 

    var blob = new Blob([], {type: "text/plain"}); 

    // construct blob object   
    blob = new Blob([blob, metaInfo], {type: "text/plain"}); 
    blob = new Blob([blob, file], {type: "text/plain"}); 

    // pass blob to parser library 
    var REObjects = Papa.parse(blob, {    
     delimiter: "#", 
     header: true, 
     complete: function(results, file) { 
      console.log("Parsing complete:", results, file); // works, contains JSON data using the metaInfo as attribute names 
     } 
    }); 
}); 
} 

特別感謝dandavis