我从数据库获取二进制字节并将它们转换为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>
答案 0 :(得分:0)
如果您的图像未存储在默认的图像文件夹中,则在发布后不会包含新文件夹。它不是代码错误。尽管我能看到代码是正确的。如果在构建后创建文件夹,请检查图像路径。