2010-05-25 76 views
0

我想在asp.net中驗證asp的FileUpload控件。這應該只接受.xlsx和.xls文件。驗證可能在服務器端或客戶端。但客戶端會更好。 如何做到這一點?在ASP.Net中驗證FileUpload控件

回答

0

是..則可以通過簡單的客戶端腳本驗證..

變種uploadfile =的document.getElementById( 「<%= FileUpload1.ClientID%>」)值。 //獲取子串,找出擴展 VAR EXT = uploadfile.extension //獲取子串,找出擴展
如果(EXT!= 「XLS 」) { 警報(「 無效的格式。」) 返回false ; }

+0

<%= FileUpload1.ClientID%>「這是正確的語法? – 2010-05-26 05:57:36

+0

<%#FileUpload1.ClientID%>」thre必須是'#'而不是'='我認爲是正確的? – 2010-05-26 05:58:45

0

在服務器端U可以做這樣的

if (FileUpload1.HasFile) 
{ 
string fileExtension = System.IO.Path.GetExtension(FileUpload1.FileName); 
if (fileExtension.ToLower() != ".xlsx" && fileExtension.ToLower() != ".xls") 
{ 
Labelupload.Text = "Only Files with ..xlsx and .xls extension are allowed"; 
Labelupload.ForeColor = System.Drawing.Color.Red; 

} 
0

檢查是否爲真正的文件類型並不簡單。用戶可以僞造文件類型(例如,.exe重命名爲.pdf),然後惡意文件將顯示爲良性文件。並檢查MIME類型的服務器端不會解決這個問題;即,如果重命名爲.pdf,.exe將顯示「application/pdf」的MIME。檢查使用System.IO.BinaryReader真實文件類型一種簡單的方法在這裏描述了使用System.IO.BinaryReader

http://forums.asp.net/post/2680667.aspx

和VB版本在這裏:

http://forums.asp.net/post/2681036.aspx

請注意,您需要知道你正在檢查的文件類型的二進制'代碼',但你可以通過實現這個解決方案並調試代碼來獲得它們。