[英]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)$
執行以下過程:
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.