Parsing Ich erstelle eine Webanwendung, die Uploads von .csv-Datei bietet.CSV-Datei von einer Eingabe in Angular
Anstatt die ganze Datei auf meinen Server hochzuladen, dann alle Zeilen in einer Tabelle dank PHP hinzuzufügen, würde ich die Datei in Angular analysieren und geparste Zeilen hinzufügen (danke an Restangular). Auf diese Weise sollte ich in der Lage sein, einige "Fehler" vor dem Hochladen zu finden (oder nicht).
In einer Ansicht, ich habe eine einfache Datei-Eingabe erstellt, mit einer Richtlinie Datei (Quelle: http://angularjstutorial.blogspot.fr/2012/12/angularjs-with-input-file-directive.html) genannt
<input type="file" data-file="param.file" />
Die file
Richtlinie:
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();
});
}
};
});
Auf diese Weise kann ich abrufen, wenn der Benutzer eine Datei auswählt. Leider bekomme ich nur den Dateinamen.
Ich möchte die csv in einer Zeichenfolge analysieren, die ich dank dieser Filter aufgespalten werden (Quelle: parsing CSV in Javascript and AngularJS):
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;
};
});
Wie kann ich die Daten in der CSV-Datei abgerufen werden zur Verfügung gestellt von die Eingabe anstelle des Dateinamens?
Vielen Dank im Voraus.
Was ist FileReader hier? Kannst du das erklären? –
FileReader ist eine HTML5-API zum ... Lesen von Dateien. – aknorw
Hat mir sehr geholfen. Bitte schreibe auch den richtigen csvToObj-Filter, der allen hilft –