簡體   English   中英

跨瀏覽器ASP.NET 2.0中的文件輸入驗證

[英]Cross browser File input validation in asp.net 2.0

輸入類型文件或文件上載html control / asp.net控件的值似乎隨瀏覽器而變化。

<input type="file" id="fileUpload" name="fileUpload" />

Chrome:fileUpload.value給出c:\\ fakePath \\ filename

Firefox:fileUpload.value給出filename.ext

即:fileUpload.value給出完整路徑和文件名

我使用帶有驗證表達式的正則表達式驗證器,如下所示

^[a-za-zA-Z0-9_\.]{3,28}\.(pdf|txt|doc|docx|png|gif|jpeg|jpg|zip|rar)$

執行以下過程:

  1. 文件名必須為3到28個字符

2.Extension必須僅與組匹配。

由於fileUpload控件的值在不同的瀏覽器中是不同的,我現在如何驗證它?

如果僅使用標准的RegularExpressionValidator,則它將跨瀏覽器本身運行。 由於RegularExpressionValidator在選擇文件時也可以在客戶端工作,因此如果文件無效,它將自動顯示ErrorMessage。

樣例代碼

<asp:FileUpload ID="fup" runat="server" />        
<asp:RegularExpressionValidator ID="RegularExpressionValidator1" runat="server" 
ControlToValidate="fup" ErrorMessage="Invalid File" 
ValidationExpression="^[a-za-zA-Z0-9_\.]{3,28}\.(pdf|txt|doc|docx|png|gif|jpeg|jpg|zip|rar)$"></asp:RegularExpressionValidator>

@Fraz Sundal無法對此代碼發表評論,因此新帖子@Fraz仍然不知道為什么它失敗了,這是代碼段<asp:RegularExpressionValidator id="rgvFile" runat="server" font-bold="true" errormessage="Only pdf,doc,zip,jpeg,png,gif files allowed" cssclass="rgvfile" enableclientscript="true" display="Dynamic" controltovalidate="fileUpload" validationexpression="^[a-za-zA-Z0-9_\\.]{3,28}\\.(pdf|txt|doc|docx|png|gif|jpeg|jpg|zip|rar)$" text="Only pdf, doc, zip, jpeg, png, gif files allowed" tooltip="Only certain files allowed and filename cannot contain space.Please check and retry"></asp:RegularExpressionValidator>

在客戶端,驗證表達式變為^[a-za-zA-Z0-9_\\.]{3,28}\\\\.(pdf|txt|doc|docx|png|gif|jpeg|jpg|zip|rar)$可能是因為

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM