日期:2014-05-17  浏览次数:20445 次

.net 上传文件验证扩展名.(希望高人指点)
想请教一个问题,用.net上传控件上传,文件的时候怎样限制上传文件的扩展名?
我用这个方法获取文件扩展名,
string fileExtension = Path.GetExtension(fpImg.FileName).ToLower();
string[] allowExtension = { ".gif", ".png", ".jepg", ".jpg", ".bmp" };
但是如果把一个exe文件的扩展名改成.jpg,也能上传。
怎么样限制即使改过扩展名之后也能检测出来?
 如果用判断文件头的方法本地测试没问题,但传到服务器上就出错,提示找不到文件,也就是不能远程读取。
望高手指点。小弟的这个bug本月已给公司贡献了五十了。

------解决方案--------------------
//是否合法的文件类型,通过FileUpload的ContentType属性来确定类型
string fileType = fu.PostedFile.ContentType.ToString().ToLower();
if (fileType == "image/pjpeg" || fileType == "image/x-png" || fileType == "image/gif"||fileType=="jpg")
return true;
return false;

用这个就可以。。