Как я могу ограничить тип файла в меню "обзор файлов" 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 и остановка загрузки / установка сообщения об ошибке (необязательно), если оно недействительно.