浏览器上传后操纵文件对象的主体

时间:2016-03-16 21:58:03

标签: javascript json file csv

将文本file上传到浏览器时,我想检查文件内容并在必要时对其进行操作,然后再将其发送到Web服务。

其他详细信息:

我上传标准化的csv文件,我想添加包含元信息的第一行,以防它丢失。之后,我将csv反序列化为json对象数组,而属性则以元信息命名。

编辑1:添加了代码,库和&框架信息

我正在使用meteor,我使用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
        }
    });
 });

1 个答案:

答案 0 :(得分: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