Он изначально не поддерживается в ng-file-upload
, но вы можете создать его самостоятельно.Подключитесь к ngf-change
таким образом:
ngf-change="checkEncoding($files, $file, $newFiles, $duplicateFiles, $invalidFiles, $event)"
Включите encoding.js
в ваше приложение.Когда пользователь выбирает файл .txt
, загрузите содержимое файла с помощью FileReader
и используйте encoding.js
для проверки кодировки:
$scope.checkEncoding = function(files, file, newFiles, duplicateFiles, invalidFiles, event) {
if (!event.target.files) return
var testFile = event.target.files[0];
var reader = new FileReader();
reader.onload = function(e) {
var content = new Uint8Array(e.target.result);
var encoding = Encoding.detect(content);
if (encoding != 'UTF8') {
//alert to the user, reset the file ng-model whatever ...
}
}
reader.readAsArrayBuffer(testFile)
}
Вот рабочий план -> http://plnkr.co/edit/1UM9NDpNgRbJ13R67xuf?p=preview