Для проверки расширения файла вы можете создать Угловую директива & использовать его в HTML ...
смотрите ниже кода, чтобы создать директиву действительного-файл
{yourModuleName}.directive('validFile', function validFile($parse) {
return {
restrict : 'A',
require: 'ngModel',
link: function (scope, element, attrs, ngModelCtrl) {
ngModelCtrl.$validators.validFile = function() {
element.on('change', function() {
var value = element.val(),
model = $parse(attrs.ngModel),
modelSetter = model.assign;
scope.uploadedFileType = null;
if(!value) {
modelSetter(scope, '');
} else {
var ext = value.substring(value.lastIndexOf('.') + 1).toLowerCase();
if(attrs.validFile.indexOf(ext) !== -1) {
scope.uploadedFileType = ext;
modelSetter(scope, element[0].files[0]);
} else {
scope.uploadedFileType = 'other';
modelSetter(scope, '');
}
}
});
};
}
};
});
в использовании HTML ниже
<input type="file" id="payloadFile" name="payloadFile" ng-model="cntrl.payloadFile" valid-file=".xml" required/>
представить функцию =>
uploadFile = function() {
var file = cntrl.payloadFile;
if(file == undefined || file == null) {
return;
} else if(file == '' && $scope.uploadedFileType == 'other') {
document.getElementById('payloadFile').setCustomValidity('Supported file formats are *.xml');
} else{
//submit valid file here
}
}
Проверить выполнение кода here
Так .. как писать '<входной тип = "файл" ID = "" название = "">'? – Doreen
Хмм, ну я обновлю свой ответ –
@Gloria см. Мой обновленный ответ –