现在的位置: 首页 > 综合 > 正文

C#.NET 上传图片时怎样限制文件格式

2013年04月19日 ⁄ 综合 ⁄ 共 1261字 ⁄ 字号 评论关闭
在上传文件时,限制上传的文件为JPG,GIF格式,怎么处理?
源代码:
HttpPostedFile hpf = UploadFile.PostedFile;
try
{
UploadFile.Accept = "images/*";
UpfileName.Text= hpf.FileName;
FileSize.Text = hpf.ContentLength.ToString();
//取得文件名(不含路径)
char[] de = {'\\'};
string[] AFilename = hpf.FileName.Split(de);
string strFilename = AFilename[AFilename.Length-1];
lblFileName.Text = strFilename;
//保存文件到指定路径
hpf.SaveAs(Server.MapPath("..")+@"\..\xwzx\images_thing\"+strFilename);
string var_path = "\\xwzx\\images_thing\\" + strFilename ;
UpfileName.Text = strFilename+"上传成功";
UpfileName.Visible = true;
//保存路径和文件名
myBuExample.UpdateJBJSbyOID(long.Parse(OID.Text.Trim()),var_path);
this.BuilderData();
}
catch
{
UpfileName.Text = UploadFile.Value.ToString() + "上传失败或是出错!";
UpfileName.Visible = true;

string pictype=FileUp.PostedFile.ContentType.ToString().Replace("image/",""); 
if(pictype=="pjpeg")
{
pictype="jpg";
suffix=".jpg";
}
else
{
   pictype="gif";
   suffix=".gif";
}
主要就是通过调试获取图片的类型,再判断


if(Extname.ToUpper() == ".JPG" || Extname.ToUpper() == ".GIF")
{
   //upload
}
else
{
  ////
}
//Extname判断文件的扩展名


up


如果不是image不上传,不就好了


这个也可以用脚本控制,如果不是你要的格式,就不许上传(主要用到:split)


其实这就是个虚假的限制
如果用户改名等 就不是很好判断 如传 word 文件时
基本没法判断是否是真的 word 文件。


这个功能我是使用客户端脚本实现的。我用onpropertychange事件触发,然后判断文件扩展名的。比在服务器端判断刷新网页感觉好一些


校验文件头数据或者干脆就用Image去打开,截获错误
否则用户可以把一个其它的文件改一下后缀名然后上传得

抱歉!评论已关闭.