'daki bir giriş tarafından sağlanan CSV dosyasını ayrıştırma .csv dosyasının yüklenmesini sağlayan bir webapp oluşturuyorum.Angular
Sunucumdaki tüm dosyayı yüklemek yerine, PHP sayesinde bir tablodaki her satırı eklemek, Angular'deki dosyayı ayrıştırmak ve ardından ayrıştırılmış çizgiler eklemek istiyorum (Restangular sayesinde). Bu şekilde, yüklemeden önce bazı "hataları" alabilmem gerekir (veya değil).
<input type="file" data-file="param.file" />
file
direktif:
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();
});
}
};
});
Bu şekilde, ben yapabilirsiniz: Bir görünümde
, bir yönerge dosyası denilen ( http://angularjstutorial.blogspot.fr/2012/12/angularjs-with-input-file-directive.html kaynağı) ile, basit bir dosya girişi oluşturduk Kullanıcı bir dosya seçtiğinde al. Maalesef sadece dosya adını alıyorum.Ben (kaynak: parsing CSV in Javascript and AngularJS): i Bu filtre sayesinde ayıracağız bir dize, içinde csv ayrıştırmak istiyorum
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;
};
});
nasıl sağladığı csv dosyasında veri alabilir dosya adı yerine girdi?
Şimdiden teşekkürler.
FileReader burada nedir? Bunu açıklar mısınız? –
FileReader, dosyaları okuyabileceğiniz bir HTML5 API'sıdır. – aknorw
Bana çok yardımcı oldu. Lütfen herkese yardımcı olan doğru csvToObj filtresini de yazınız. –