图像显示在Dev build中,但在发布项目asp.net后不会显示

时间:2015-05-04 10:53:19

标签: asp.net database image

我从数据库获取二进制字节并将它们转换为png图像并将它们保存在项目的/ Images文件夹中并通过标记显示它们。这些文件是在Developer环境中创建和使用的,但是只要我发布它,文件就会在images文件夹中创建,但它不会被读取或显示在IMG标签中。

public string Image_Binary(string pic_id)
    {
        var imagepath=ConfigurationManager.AppSettings["ImagePath"];
        string picstring;
        string pid = pic_id;
        string path = imagepath+ pid + ".Png";
        if (pid != null && pid != "")
        {
             if (File.Exists(Server.MapPath(path)))
                {
                    picstring = imagepath + pid + ".Png";
                }

             else
             {

                 DataSet picds = DB.fetchdata("select PictureBinary FROM Picture where Id=" + pic_id);
                 byte[] picbin = (byte[])picds.Tables[0].Rows[0][0];
                 ImageConverter ic = new ImageConverter();
                 System.Drawing.Image img = (System.Drawing.Image)ic.ConvertFrom(picbin);
                 img.Save(Server.MapPath(imagepath + pid + ".Png"), System.Drawing.Imaging.ImageFormat.Png);
                 picstring = imagepath + pid + ".Png";




            }
        }
        else
        {
            //picstring = null;
            picstring = "#";
        }
        return picstring;
    }

Web.config条目

  <appSettings>
  <add key="ImagePath" value="~/ProductImages/"
 </appSettings>

1 个答案:

答案 0 :(得分:0)

如果您的图像未存储在默认的图像文件夹中,则在发布后不会包含新文件夹。它不是代码错误。尽管我能看到代码是正确的。如果在构建后创建文件夹,请检查图像路径。