我想在asp.net中验证asp FileUpload Control。这应该只接受.xlsx和.xls文件。验证可以在服务器端或客户端。但客户方会更好。 怎么做?
答案 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
请注意,您需要知道要检查的文件类型的二进制“代码”,但您可以通过实现此解决方案并调试代码来获取它们。