当前位置: 代码迷 >> ASP.NET >> 上传图片并限制高宽的有关问题
  详细解决方案

上传图片并限制高宽的有关问题

热度:5004   发布时间:2013-02-25 00:00:00.0
上传图片并限制高宽的问题!
目的:上传一张图片并限制图片的高和宽的比例在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服务器
  相关解决方案