上传图片时验证是不是图片格式,期望高手帮忙

hl_xh_com 2009-03-21 10:25:55
上传图片时验证是不是图片格式,不只是判断后缀是不是,要判断实质是不是图片。也就是说,如果你把一个.aspx的文件重命名成.jpg的也能判断出它是不图片,而不能上传。本人是菜鸟一只,期望高手帮忙。最好能给出一个完整的上传代码。
...全文
119 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
wylovemzc 2009-03-21
  • 打赏
  • 举报
回复
Boolean fileOK = true;
string pathimg = "";
string path = System.Web.HttpContext.Current.Server.MapPath("~/upimg/");//服务器存放路径


string hz = System.IO.Path.GetExtension(FileUpload1.FileName).ToLower();//取出文件后缀
string[] filetype ={ ".exe", ".jpeg" };//限制文件类型
for (int i = 0; i < filetype.Length; i++)
{
if (hz == filetype[i])
{
fileOK = false;
}
}

if (fileOK)
{
try
{
FileUpload1.PostedFile.SaveAs(path + FileUpload1.FileName);//上传文件
pathimg = "~/upimg/" + FileUpload1.FileName;


}
catch (SystemException ex)
{
System.Web.HttpContext.Current.Response.Write("<script>alert('" + ex.Message + "')</script>");
}
}
else
{
System.Web.HttpContext.Current.Response.Write("<script>alert('文件类型不合要求!!')</script>");
return null;
}
return pathimg;
insus 2009-03-21
  • 打赏
  • 举报
回复
参考这两篇:
http://blog.csdn.net/insus/archive/2008/01/20/2055033.aspx

http://blog.csdn.net/insus/archive/2008/01/20/2055030.aspx

用下面的扩展名来判断,即可,用户改扩展名,也能检测出来:
255216是jpg;7173是gif;6677是BMP,13780是PNG;
huzi01245 2009-03-21
  • 打赏
  • 举报
回复
查看上传文件的mime类型
FileUpload1.PostedFile.ContentType,判断是否是图片
artwl_cn 2009-03-21
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 chgjz 的回复:]
bool flag = false;
if (fileuploadPic.HasFile)
{
string fileExtension = Path.GetExtension(fileuploadPic.FileName).ToUpper();
//只允许上传格式
string[] allowExtension = { ".JPG",".GIF",".PNG" };
for (int i = 0; i < allowExtension.Length; i++)
{
if (fileExtension == allowExtension[i])

[/Quote]
但这有一个问题就是其他文件只要把后辍名改为这些格式也可以上传!
chgjz 2009-03-21
  • 打赏
  • 举报
回复
bool flag = false;
if (fileuploadPic.HasFile)
{
string fileExtension = Path.GetExtension(fileuploadPic.FileName).ToUpper();
//只允许上传格式
string[] allowExtension = { ".JPG",".GIF",".PNG" };
for (int i = 0; i < allowExtension.Length; i++)
{
if (fileExtension == allowExtension[i])
flag = true;
}
}
troy-zhou 2009-03-21
  • 打赏
  • 举报
回复
string filename = System.DateTime.Now.ToString("yyyyMMddHHmmss") + Path.GetExtension(this.FileUpload1.PostedFile.FileName);
string type = this.FileUpload1.PostedFile.ContentType;
if (type == "image/pjpeg" || type == "image/gif") //判断图片模式
{
this.FileUpload1.SaveAs(Server.MapPath("~/uploadimg/") + filename);
}
else
{
Response.Write("<script language='javascript'>alert('你上传的图片类型有误!');</script>");
return;
}
hl_xh_com 2009-03-21
  • 打赏
  • 举报
回复
谢谢1楼给的答案 4楼的也对 但对于我这个菜鸟来说 没有一楼的就看不出4楼的也对,总之谢谢你们的回应

62,268

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧