Как я могу ограничить тип файла в меню "обзор файлов" AsyncFileUpload в ASP.NET инструментарий управления AJAX
Я хотел бы ограничить то, что они видят в диалоговом окне загрузки файлов, которое по умолчанию установлено в "все файлы". Я понимаю, как проверить, что они загрузили только определенный тип файла, это не вопрос. Я просто хотел бы знать, как по умолчанию тип файла в диалоговом окне выбора файла.
есть ли способ изменить это на "только PNG "или"*.png"?
Это использование AsyncFileUpload в ASP.NET AJAX Control Toolkit.
3 ответов
текущая версия AJAX Control toolkit не имеет этой опции.
но хорошая новость заключается в том, что вы могли бы получить исходный код и добавьте свойство, обработайте это.
это работает для меня (спасибо Давробу за вдохновение).
<cc1:AsyncFileUpload ID="FileUpload" runat="server"
OnClientUploadStarted="AssemblyFileUpload_Started" />
<script>
function AssemblyFileUpload_Started(sender, args) {
var filename = args.get_fileName();
var ext = filename.substring(filename.lastIndexOf(".") + 1);
if (ext != 'png') {
throw {
name: "Invalid File Type",
level: "Error",
message: "Invalid File Type (Only .png)",
htmlMessage: "Invalid File Type (Only .png)"
}
return false;
}
return true;
}
</script>
можно использовать OnClientUploadStart
свойство элемента управления для запуска функции JavaScript для проверки, например:
<cc1:AsyncFileUpload ID="FileUpload" runat="server"
OnClientUploadStarted="checkExtension" />
тогда этот скрипт на Вашей странице или включен:
function checkExtension(sender, args) {
var ext = args.get_fileName().substring(filename.lastIndexOf(".") + 1);
if (ext != 'png') {
args.set_cancel(true); //cancel upload
args.set_errorMessage("File type must be .png"); //set error message
return false;
}
return true;
}
в этом случае мы просто используем различные биты API на стороне клиента, чтобы получить / проверить расширение, возвращая false
и остановка загрузки / установка сообщения об ошибке (необязательно), если оно недействительно.