在ASP.Net中验证FileUpload控件

时间:2010-05-25 12:43:01

标签: file-upload

我想在asp.net中验证asp FileUpload Control。这应该只接受.xlsx和.xls文件。验证可以在服务器端或客户端。但客户方会更好。 怎么做?

3 个答案:

答案 0 :(得分:0)

是的..您可以通过简单的客户端脚本验证..

var uploadfile = document.getElementById(“<%= FileUpload1.ClientID%>”)。value; //获取子字符串以找出扩展名 var ext = uploadfile.extension //获取子字符串以查找扩展名
if(ext!=“。xls”)             {                 警报(“格式无效。”)                 返回false;             }

答案 1 :(得分:0)

在服务器端,你可以这样做

 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;

 }

答案 2 :(得分:0)

检查真实的文件类型并不简单。用户可以欺骗文件类型(例如,.exe重命名.pdf),然后恶意文件将显示为良性文件。检查MIME类型服务器端将无法解决此问题;即,如果重命名为.pdf,.exe将显示MIME“application / pdf”。使用System.IO.BinaryReader描述了使用System.IO.BinaryReader检查真实文件类型的简单方法:

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

和VB版本:

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

请注意,您需要知道要检查的文件类型的二进制“代码”,但您可以通过实现此解决方案并调试代码来获取它们。