设计的一个上传网页的页面,用的是 C#2005 中自带的上传附件的控件FileUpload上传
FileUpload1.SaveAs(Server.MapPath("../..") + "/UploadImage/" + FileUpload1.FileName)现在想限制上传的时候只能上传图片,别的不能上传,各位大虾知道的支下招啊!!
FileUpload1.SaveAs(Server.MapPath("../..") + "/UploadImage/" + FileUpload1.FileName)现在想限制上传的时候只能上传图片,别的不能上传,各位大虾知道的支下招啊!!
public static string ImageType(string filePath)
{
try
{
FileStream fs = new FileStream(filePath, FileMode.Open, FileAccess.Read);
BinaryReader reader = new BinaryReader(fs);
string fileClass;
byte buffer;
byte[] b = new byte[2];
buffer = reader.ReadByte();
b[0] = buffer;
fileClass = buffer.ToString();
buffer = reader.ReadByte();
b[1] = buffer;
fileClass += buffer.ToString(); reader.Close();
fs.Close(); switch(fileClass)
{
case "255216"://jpg
return "jpg";
case "7173"://gif
return "gif";
case "6677"://Bmp
return "Bmp";
case "13780"://PNG
return "PNG";
default :
return string.Empty;
}
}
catch
{
return string.Empty;
}
}
判断之后在决定上传与否
JPG的文件类型是 Images/JPEG
只要不是合法的文件或不是图片文件,都可以检测出来。
if (!Directory.Exists(test))
{
Directory.CreateDirectory(test);
}
string UpId=Request.QueryString["UpId"];//传递修改ID
if (FuImage.PostedFile.FileName != "")
{
string imgname = FuImage.PostedFile.FileName;//取得全名
string imgType = imgname.Substring(imgname.LastIndexOf(".") + 1).ToLower();//得到扩展名并转换为小写
string itemNo = getImageItemNo();//得到自动编号
string quanname = itemNo + imgname.LastIndexOf("\\") + "." + imgType;
if ("gif" != imgType && "jpg" != imgType)
{
MessageBox("a00004", null);
return;
}
#region //判断数据库是否存在图片数据。修改重现上传时删除前次上传的。
if (UpId!=null)
{
sqls.Fill_DT("select urlImage from dbo.bbs_spacelinks where linkid="+UpId+" ", dtUrlImage);
string strDel = Server.MapPath(dtUrlImage.Rows[0]["urlImage"].ToString());
if (dtUrlImage.Rows[0]["urlImage"].ToString() != null)
{
FileInfo fileDel = new FileInfo(strDel);
if (fileDel.Exists)
{
fileDel.Delete();
}
}
string imgurl = "LinkImage/" + DateTime.Now.ToString("yyyy-MM-dd") + "/" + quanname;//保存数据的时候保存imgurl 这个就可以
FuImage.PostedFile.SaveAs(Server.MapPath(imgurl));
this.HFImageUrl.Value = imgurl;//赋给隐藏域值
this.imageUrl.Value = imgurl;//赋给文本框的值
sqls.ConClose();