将文本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
}
});
});
答案 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