Этот вопрос не касается отслеживания хода файла во время его загрузки на сервер.Как получить ход выполнения ввода типа = файл?
В моем проекте у меня есть ~ 6GB .csv-файлы, которые мне нужно прочитать и отфильтровать некоторые строки на основе определенных критериев.
С известными событиями легко узнать, когда файл загружен в браузер, но поскольку я обрабатываю довольно большие CSV-файлы, я хотел бы показать пользователю, сколько% файла было загружено в браузер.
Чтобы загрузить CSV, я использую следующую пользовательскую директиву:
angular.module('csv-filter')
.directive('fileReader', function() {
return {
scope: {
fileReader:"="
},
link: function(scope, element) {
$(element).on('change', function(changeEvent) {
var files = changeEvent.target.files;
console.log('files', files);
console.log('waiting for onload event..');
if (files.length) {
var r = new FileReader();
r.onload = function(e) {
var contents = e.target.result;
var filesize = 0;
scope.$apply(function() {
scope.fileReader = {filename: files[0].name, contents: contents};
});
};
r.readAsText(files[0]);
}
});
}
};
});
Вот ссылка на мое приложение, где я делаю все это: https://ahref-csv-filter.herokuapp.com/