是否可以让文件上传控件仅显示图像文件?
当我们点击浏览按钮时,应该只显示图像文件。
是否可以让文件上传控件仅显示图像文件?
当我们点击浏览按钮时,应该只显示图像文件。
2015年,Web浏览器支持输入accept属性,因此您可以这样做:
<asp:FileUpload ID="fileUploader" runat="server" accept=".png,.jpg,.jpeg,.gif" />
请记住,Visual Studio可能会向您显示有关此文件上传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>
accept=".png,.jpg,.jpeg,.gif"
。 - Learning//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"。
使用accept属性可以在文件浏览器中仅显示像下面这样的图像 -
<asp:FileUpload ID="FileUploadFileType" runat="server" CssClass="form-control" accept=".png,.jpg,.jpeg,.gif" />
<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>