MVC4 - 上传图像 - 通用GDI +错误

时间:2013-05-13 03:44:35

标签: asp.net-mvc image file-upload gdi

我正在尝试上传图片,当我尝试使用image.Save()时,我收到了“通用GDI +”错误。任何帮助都会很棒。

    // This action handles the form POST and the upload
    [HttpPost]
    public ActionResult Index(HttpPostedFileBase file, string filename)
    {
        // Verify that the user selected a file
        if (file != null && file.ContentLength > 0)
        {                
            string location = "~/Content/Images/Specials/" + "rttest" + ".jpg";
            Bitmap bitmap = new Bitmap(file.InputStream);
            Image image = (Image)bitmap;
            image.Save(stream, System.Drawing.Imaging.ImageFormat.Jpeg);
            image.Save(location);            
        }
        // redirect back to the index action to show the form once again
        return RedirectToAction("Index");
    }

1 个答案:

答案 0 :(得分:0)

GDI +无法访问“〜/ Content / Images / Specials / ...”的位置,因为它不是物理路径。您需要使用Server.MapPath()将虚拟路径映射到物理路径。

 string location = Server.MapPath("~/Content/Images/Specials/" + "rttest" + ".jpg");

另外,你连接路径的一部分然后“rrest”然后“.jpg”是奇怪的。可能希望在投入生产之前对其进行调查,这样您就不会一遍又一遍地覆盖图像。