上传图片并限制高宽的有关问题
上传图片并限制高宽的问题!
目的:上传一张图片并限制图片的高和宽的比例在5:4
现在问题:代码写好了,但总是上传失败,问题出在哪里?
请帮我看一下,谢谢!
------解决方案--------------------
你把断点设置在string fileName = FileZp.PostedFile.FileName;
然后一步一步,看到fileName是客户端的文件名
System.Drawing.Image.FromFile这个是需要服务器上的文件路径
错误非常明显。
把文件保存到服务器上,然后用服务器端的文件初始化System.Drawing.Image.FromFile就可以了。
我的网站:svn服务器
目的:上传一张图片并限制图片的高和宽的比例在5:4
现在问题:代码写好了,但总是上传失败,问题出在哪里?
请帮我看一下,谢谢!
- C# code
protected void showUpZp() { try { string imgfilename = ""; if (FileZp.PostedFile.FileName != "") { string fileName = FileZp.PostedFile.FileName; //取得文件名 System.Drawing.Image image = System.Drawing.Image.FromFile(fileName); string strWidth = image.Width.ToString(); string strHeight = image.Height.ToString(); string strDx = string.Format("{0:N2}", Math.Round((Convert.ToDouble(strHeight) / Convert.ToDouble(strWidth)),2)); if (Convert.ToDouble(strDx) <= Convert.ToDouble("1.30")) { if (Convert.ToDouble(strDx) >= Convert.ToDouble("1.20")) { int intFileLength = FileZp.PostedFile.ContentLength; if (intFileLength > 102400) { Page.ClientScript.RegisterStartupScript(Page.GetType(), "message", "<script language='javascript' defer='defer'>alert('身份证图片大小不能大于100KB');</script>"); return; } else { string strFullZpName = FileZp.PostedFile.FileName.Substring(FileZp.PostedFile.FileName.IndexOf(".")); imgfilename = txtUserId.Text + "Z" + strFullZpName; FileZp.PostedFile.SaveAs(Server.MapPath("../../UserZp") + "\\" + imgfilename); strFileZpName = imgfilename; } } else { Page.ClientScript.RegisterStartupScript(Page.GetType(), "message", "<script language='javascript' defer='defer'>alert('头像照片的比例调整为1.2-1.3之间,最佳效果为1.25(即高宽比例为5:4)。');</script>"); } } else { Page.ClientScript.RegisterStartupScript(Page.GetType(), "message", "<script language='javascript' defer='defer'>alert('头像照片的比例调整为1.2-1.3之间,最佳效果为1.25(即高宽比例为5:4)。');</script>"); } } else { strFileZpName = "UserZp.jpg"; } } catch (System.Exception ex) { Page.ClientScript.RegisterStartupScript(Page.GetType(), "message", "<script language='javascript' defer='defer'>alert('身份证图片上传失败:" + ex.Message + "');</script>"); } }
------解决方案--------------------
你把断点设置在string fileName = FileZp.PostedFile.FileName;
然后一步一步,看到fileName是客户端的文件名
System.Drawing.Image.FromFile这个是需要服务器上的文件路径
错误非常明显。
把文件保存到服务器上,然后用服务器端的文件初始化System.Drawing.Image.FromFile就可以了。
我的网站:svn服务器