Можно ли разрешить элементу управления файлами отображать только изображения?
Когда мы нажимаем кнопку "Обзор", она должна показывать только изображения.
Можно ли разрешить элементу управления файлами отображать только изображения?
Когда мы нажимаем кнопку "Обзор", она должна показывать только изображения.
Нет, в Интернете вы не можете со стороны клиента, очевидно, со стороны сервера вы можете делать потрясающие вещи. Для таких целей программисты обычно используют ActiveX, flash или т.п.
В 2015 году, веб - браузеры поддерживают вход принимает атрибут, так что вы можете сделать это:
<asp:FileUpload ID="fileUploader" runat="server" accept=".png,.jpg,.jpeg,.gif" />
Однако имейте в виду, что Visual Studio может показывать вам сообщение об этом как о недопустимом атрибуте инструмента FileUpload ASP.
Я не нашел прямого решения этой проблемы.
Это мое обходное решение с помощью параметра 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>
Вы не можете строго ограничивать тип файла, но если браузер поддерживает его, вы можете заставить его сначала показать только определенный тип файла:
<form method="post" action="blahblah.blah">
<input type="file" name="image" id="image" accept="image/png, image/jpeg" />
</form>
//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', сохраняя данные/выгружать.
Предполагая, что вы имеете в виду только загрузку изображений.
Вы можете проверить свойство ContentType
файла (I.e. image/gif).
Взгляните сюда на пример: http://www.15seconds.com/issue/061116.htm
С обычным <input type="file">
, я боюсь, что это невозможно на стороне клиента.
Тем не менее, некоторые сторонние загрузчики, такие как SWFUpload, предоставляют эту функциональность.
Использовать атрибут 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>