Как я могу ограничить тип файла в меню просмотра файлов AsyncFileUpload в ASP.NET AJAX Control Toolkit - PullRequest
6 голосов
/ 29 июля 2010

Я хотел бы ограничить то, что они видят в диалоге загрузки файлов, который по умолчанию имеет значение «Все файлы».Я понимаю, как проверить, что они загрузили только определенный тип файлов, это не вопрос здесь.Я просто хотел бы знать, как по умолчанию тип файла в диалоговом окне выбора файла.

Есть ли способ изменить это на "только PNG" или "* .png"?

Этоиспользует AsyncFileUpload в ASP.NET AJAX Control Toolkit.

Ответы [ 3 ]

10 голосов
/ 04 июня 2012

Этот работает на меня (спасибо DavRob за вдохновение).

<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>
3 голосов
/ 29 июля 2010

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

2 голосов
/ 05 августа 2010

Текущая версия инструментария управления ajax не имеет этой опции.

Но хорошая новость в том, что вы можете получить исходный код и добавить свойство, которое обрабатывает это.

...