Ни один из существующих ответов, казалось, вполне достаточно компактен для простоты запроса.Проверка, является ли данный входной файл поле имеет расширение из набора может быть выполнено следующим образом:
function hasExtension(inputID, exts) {
var fileName = document.getElementById(inputID).value;
return (new RegExp('(' + exts.join('|').replace(/\./g, '\\.') + ')$')).test(fileName);
}
Так пример использования может быть (где upload
является id
из входного файла):
if (!hasExtension('upload', ['.jpg', '.gif', '.png']) {
// ... block upload
}
Или как плагин JQuery:
$.fn.hasExtension = function(exts) {
return (new RegExp('(' + exts.join('|').replace(/\./g, '\\.') + ')$')).test($(this).val());
}
Пример использования:
if (!$('#upload').hasExtension(['.jpg', '.png', '.gif'])) {
// ... block upload
}
.replace(/\./g, '\\.')
существует, чтобы избежать точки для регулярного выражения, чтобы базовые расширения могли быть переданы без точек, соответствующих любому символу.
У вас нет ошибок при проверке на наличие коротких сообщений, предположительно, если вы их используете, вы убедитесь, что вход существует первым, и массив расширений действителен!
Вы используете Uploadify как предложено в одном из ваших предыдущих вопросов, не так ли? – BalusC
Нет, он останавливается между 50-96. Пробовал много раз с различными входами. И я тоже спешил для решения в то время. Итак, я попробовал простой 'jquery.ProgressBar.js'. Это работает, отлично. ### Итак, могу ли я проверить с помощью добавления !!! – 2010-11-21 00:22:15
http://www.angulartutorial.net/2016/05/file-upload-validation.html – Prashobh