上传时调整图像大小

时间:2010-08-20 05:54:05

标签: asp.net

我使用文件上传控件上传图片。 在iam检查条件,如果Image.Width> 250 || Image.Height> 400然后我正在调整图像大小。 但它给出了错误 “SaveAs方法配置为需要根路径,并且路径'ProductImages / roman_sandals.jpg'不是root。”

ProductImages是我保存图片的文件夹。 任何人都可以找到为什么这会给出错误,我的代码是

string strBigServerPath = AppHardcodeValue.productImgPath;
            string strFileName = "";
            if (prodImg.HasFile)
            {
                strFileName = prodImg.PostedFile.FileName;
                string uniqueNum = Convert.ToString(System.Guid.NewGuid());
                string shortFileName = System.IO.Path.GetFileName(strFileName);
                string Extension = System.IO.Path.GetExtension(prodImg.FileName);
                string newFileName = shortFileName;
                prodImg.SaveAs(Server.MapPath(strBigServerPath + newFileName));
                using (System.Drawing.Image Img =
                   System.Drawing.Image.FromFile(Server.MapPath(strBigServerPath) + newFileName))
                {
                    if (Img.Width > 250 || Img.Height > 400)
                    {
                        Size MainSize = new Size(250, 400);
                        using (System.Drawing.Image ImgThnail =
                               new Bitmap(Img, MainSize.Width, MainSize.Height))
                        {
                            prodImg.SaveAs(strBigServerPath + newFileName);
                        }
                    }
                    Img.Dispose();
                }
                string ThumbnailPath = Server.MapPath(AppHardcodeValue.productThumbImgPath) + newFileName;
                using (System.Drawing.Image Img =
                    System.Drawing.Image.FromFile(Server.MapPath(strBigServerPath) + newFileName))
                {
                    Size ThumbNailSize = new Size(50, 50);

                    using (System.Drawing.Image ImgThnail =
                        new Bitmap(Img, ThumbNailSize.Width, ThumbNailSize.Height))
                    {
                        ImgThnail.Save(ThumbnailPath, Img.RawFormat);
                        ImgThnail.Dispose();
                    }
                    Img.Dispose();
                }

}

1 个答案:

答案 0 :(得分:0)

您可以使用

HostingEnvironment.ApplicationPhysicalPath

在这种情况下,并将其与您的图像路径组合。

例如:

Path.Combine(HostingEnvironment.ApplicationPhysicalPath, "ProductImages/roman_sandals.jpg");

将为您提供根路径。文件夹“ProductImages”必须位于应用程序目录中。

详情请见此处:http://msdn.microsoft.com/en-us/library/system.web.hosting.hostingenvironment.applicationphysicalpath.aspx