今天在小舖看到一篇驗證FileUpload控制項的問題...
如果使用者在裡面亂key值,按上傳是沒作用的..
但如果沒提示訊息..使用者可能會以為是不是程式壞了..
所以小弟介紹兩種方式..來驗證FileUpload的路徑輸入的格式...
1.用傳統javascript來判斷
2.用ASP.NET的驗證控制項(RequiredFieldValidator,RegularExpressionValidator )
c#範例..(注意範例的驗證,是要副檔名為doc.pdf,rtf才能正確驗證,只要會寫正規表達式,可自行修改)
FileUpload.aspx
01 <%@ Page Language="C#" AutoEventWireup="true" CodeFile="FileUpload.aspx.cs" Inherits="FileUpload" %>
02
03 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
04
05 <html xmlns="http://www.w3.org/1999/xhtml" >
06 <head runat="server">
07 <title>FileUpload</title>
08 </head>
09 <body>
10 <form id="form1" runat="server">
11 <div>
12 <asp:FileUpload ID="FileUpload1" runat="server" />
13 <asp:Button ID="Button1" runat="server" OnClientClick="return val_Test();" OnClick="Button1_Click" Text="upload(javascript)" Width="160px" /><br />
14 <asp:FileUpload ID="FileUpload2" runat="server" />
15 <asp:Button ID="Button2" runat="server" Text="upload(驗證控制項)"
16 Width="160px" OnClick="Button2_Click" /><br />
17 <asp:RegularExpressionValidator ID="RegularExpressionValidator1" runat="server" ControlToValidate="FileUpload2"
18 ErrorMessage="路徑有誤" ValidationExpression="^([a-zA-Z].*|[1-9].*)\.(doc|DOC|pdf|PDF|rtf|RTF)$"></asp:RegularExpressionValidator>
19 <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ControlToValidate="FileUpload2"
20 ErrorMessage="路徑不可為空白"></asp:RequiredFieldValidator>
21 </div>
22 </form>
23 </body>
24 </html>
25 <script language="JavaScript" type="text/javascript">
26 function val_Test(){
27 var file = document.getElementById('FileUpload1').value;
28
29 var reOKFiles = /^([a-zA-Z].*|[1-9].*)\.(doc|DOC|pdf|PDF|rtf|RTF)$/;
30
31 if (!(reOKFiles.test(file)))
32 {
33 alert("路徑有誤!")
34 return false;
35 }else
36 {
37 alert("路徑正確!")
38 return true;
39 }
40 }
41 </script>
42
FileUpload.aspx.cs
執行結果:

參考網址:
http://www.blueshop.com.tw/board/show.asp?subcde=BRD20080312214951WQD&fumcde=FUM20041006161839LRJ
推到 Twitter!
推到 Plurk!
回覆
目前沒有回應.
發表回覆
-
標題: *
-
-
姓名: *
-
-
Email: (將不會被顯示)
-
-
Url:
-
-
回覆: *
-
-