上传图片,要求图片200*100象素,大小小于2M,
如果图片不符合要求,不能上传,否则上传图片,上传以后对图片按系统日期动态命名,保留路径到数据库里。
private void Button1_Click(object sender, System.EventArgs e)
{
if(File1.PostedFile.ContentType.ToUpper().IndexOf("IMAGE")>-1)
{
System.Drawing.Image img= System.Drawing.Image.FromStream(File1.PostedFile.InputStream);
int Width = img.Width;
int Height = img.Height;
if(Width>200 || Height>100 || File1.PostedFile.ContentLength>1024*1024*2)
{
Response.Write("不符:Width="+Width.ToString() +"<br>Height="+Height.ToString()+"<br>Size="+(this.File1.PostedFile.ContentLength/1024).ToString("##,##0.00")+"K");
}
else
{
string sPath =Server.MapPath(System.DateTime.Now.ToString("yyy-MM-dd hh-mm-ss")+Session.SessionID+".jpg");
this.File1.PostedFile.SaveAs(sPath);
Response.Write("保存成功");
}
}
else
{
Response.Write("请选择图片文件!");
}
}
除了FLASH等客户端环境以外,光使用js这个是无法控制的,只能传到服务器端再确定是保留还是删除
上传到服务器后才能判断大小,也可以在服务器端对用户上传的图片进行部分截取,在客户端是单纯浏览器可执行的东西是搞不定的(HTML/CSS/JS)
客户端可以使用active控件来解决,但是只适用于某一些场景,比较企业内部管理系统等
可也以在后台区实现,控制区传输大小。
如果只是限制尺寸 不是大小的话,可以使用滤镜来获取图片信息,这个不受IE7以上限制