我正在创建一个webapp,其中包含.csv文件的上传.
感谢PHP,而不是在我的服务器上上传整个文件,然后在表格中添加每一行,我想在Angular中解析文件,然后添加解析后的行(感谢Restangular).这样,我应该能够在上传(或不上传)之前检索一些"错误".
在视图中,我创建了一个简单的文件输入,带有一个名为file的指令(来源:http://angularjstutorial.blogspot.fr/2012/12/angularjs-with-input-file-directive.html)
<input type="file" data-file="param.file" />
Run Code Online (Sandbox Code Playgroud)
该file指令:
app.directive('file', function(){
return {
scope: {
file: '='
},
link: function(scope, el, attrs){
el.bind('change', function(event){
var files = event.target.files;
var file = files[0];
scope.file = file ? file.name : undefined;
scope.$apply();
});
}
};
});
Run Code Online (Sandbox Code Playgroud)
这样,我可以在用户选择文件时检索.不幸的是,我只得到文件名.
我想在一个字符串中解析csv,由于这个过滤器我将分裂(源代码:在Javascript和AngularJS中解析CSV):
app.filter('csvToObj',function(){
return function(input){
var rows=input.split('\n');
var obj=[];
angular.forEach(rows,function(val){
var o=val.split(';');
obj.push({
designation:o[1],
...
km:o[11]
});
});
return obj;
};
});
Run Code Online (Sandbox Code Playgroud)
如何检索输入提供的csv文件中的数据而不是文件名?
提前致谢.