读书人

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

发布时间: 2012-03-09 16:54:58 作者: rapoo

上传图片并限制高宽的问题!
目的:上传一张图片并限制图片的高和宽的比例在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服务器

读书人网 >asp.net

热点推荐