驗證ASP.NET的FileUpload路徑輸入方法,1.利用javascript,2.利用驗證控制項
今天在小舖看到一篇驗證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
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
01
using System;
02
using System.Data;
03
using System.Configuration;
04
using System.Collections;
05
using System.Web;
06
using System.Web.Security;
07
using System.Web.UI;
08
using System.Web.UI.WebControls;
09
using System.Web.UI.WebControls.WebParts;
10
using System.Web.UI.HtmlControls;
11
12
public partial class FileUpload : System.Web.UI.Page
13
{
14
protected void Page_Load(object sender, EventArgs e)
15
{
16
17
}
18
protected void Button1_Click(object sender, EventArgs e)
19
{
20
if (this.FileUpload1.HasFile)
21
{
22
Response.Write("上傳檔案");
23
}
24
else
25
{
26
Response.Write("無此檔案");
27
}
28
}
29
protected void Button2_Click(object sender, EventArgs e)
30
{
31
if (this.FileUpload1.HasFile)
32
{
33
Response.Write("上傳檔案");
34
}
35
else
36
{
37
Response.Write("無此檔案");
38
}
39
}
40
}
41

02

03

04

05

06

07

08

09

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41
執行結果:
參考網址:
http://www.blueshop.com.tw/board/show.asp?subcde=BRD20080312214951WQD&fumcde=FUM20041006161839LRJ