Подтвердить что ты не робот

Как ограничить тип файла в элементе управления FileUpload

Можно ли разрешить элементу управления файлами отображать только изображения?

Когда мы нажимаем кнопку "Обзор", она должна показывать только изображения.

4b9b3361

Ответ 1

Нет, в Интернете вы не можете со стороны клиента, очевидно, со стороны сервера вы можете делать потрясающие вещи. Для таких целей программисты обычно используют ActiveX, flash или т.п.

Ответ 2

В 2015 году, веб - браузеры поддерживают вход принимает атрибут, так что вы можете сделать это:

<asp:FileUpload ID="fileUploader" runat="server" accept=".png,.jpg,.jpeg,.gif" />

Однако имейте в виду, что Visual Studio может показывать вам сообщение об этом как о недопустимом атрибуте инструмента FileUpload ASP.

Ответ 3

Я не нашел прямого решения этой проблемы.

Это мое обходное решение с помощью параметра RegularExpressionValidator:

<asp:FileUpload ID="fuImportImage" runat="server" />
<asp:RegularExpressionValidator ID="regexValidator" runat="server"
     ControlToValidate="fuImportImage"
     ErrorMessage="Only JPEG images are allowed" 
     ValidationExpression="(.*\.([Jj][Pp][Gg])|.*\.([Jj][Pp][Ee][Gg])$)">
</asp:RegularExpressionValidator>

Ответ 4

Вы не можете строго ограничивать тип файла, но если браузер поддерживает его, вы можете заставить его сначала показать только определенный тип файла:

<form method="post" action="blahblah.blah">
  <input type="file" name="image" id="image" accept="image/png, image/jpeg" />
</form>

Ответ 5

//VALIDATE FILE EXTENTION
var _validFileFlag;
function fValidFileExt(vfilePath){
  var vFileName=vfilePath.split('\\').pop();
  var vFileExt=vfileName.split('.').pop();
  if(vFileExt.toUpperCase()=="JPEG" || vFileExt.toUpperCase()=="JPG"){
     _validFileFlag = true;
  } 
  _validFileFlag = false;
} 

<asp:FileUpload ID="FileUpload1" onchange="fValidFileExt(this.value);" runat="server"  />

Отметьте '_validFileFlag', сохраняя данные/выгружать.

Ответ 6

Предполагая, что вы имеете в виду только загрузку изображений.

Вы можете проверить свойство ContentType файла (I.e. image/gif).

Взгляните сюда на пример: http://www.15seconds.com/issue/061116.htm

Ответ 7

С обычным <input type="file">, я боюсь, что это невозможно на стороне клиента.

Тем не менее, некоторые сторонние загрузчики, такие как SWFUpload, предоставляют эту функциональность.

Ответ 8

Использовать атрибут accept для отображения только изображений в браузере файлов, как показано ниже -

<asp:FileUpload ID="FileUploadFileType" runat="server" CssClass="form-control" accept=".png,.jpg,.jpeg,.gif" />

с asp.nets RegularExpressionValidator для проверки выбранного типа файла с подтверждением.

<asp:RegularExpressionValidator ID="RegExValFileUploadFileType" runat="server"
                        ControlToValidate="FileUploadFileType"
                        ErrorMessage="Only .jpg,.png,.jpeg,.gif Files are allowed" Font-Bold="True"
                        Font-Size="Medium"
                        ValidationExpression="(.*?)\.(jpg|jpeg|png|gif|JPG|JPEG|PNG|GIF)$"></asp:RegularExpressionValidator>