2010-05-25 69 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

请注意,您需要知道你正在检查的文件类型的二进制'代码',但你可以通过实现这个解决方案并调试代码来获得它们。