我正在使用ashx文件从数据库中检索图像。 如果它在数据库中不可用,它将显示我的内部的另一个图像 项目文件夹。但我无法访问本地图像。 任何人都可以帮助我或建议吗?
我的代码:
public void ProcessRequest (HttpContext context)
{
context.Response.ContentType = "text/plain";
string Value = (string)context.Session["UserID"];
Stream strm = ShowEmpImage(Value);
if (strm == null)
{
byte[] imageBytes = File.ReadAllBytes("~/images/photo_not_available.png" + context.Request["image"]);
context.Response.ContentType = "image/png";
context.Response.BinaryWrite(imageBytes);
}
else
{
byte[] buffer = new byte[4096];
int byteSeq = strm.Read(buffer, 0, 4096);
while (byteSeq > 0)
{
context.Response.OutputStream.Write(buffer, 0, byteSeq);
byteSeq = strm.Read(buffer, 0, 4096);
}
}
//context.Response.BinaryWrite(buffer);
}
ThnnQ
答案 0 :(得分:2)
这里肯定你有一个错误,你添加了图像文件名,还有一个变量 - 这肯定是一个不存在的文件。
byte[] imageBytes =
File.ReadAllBytes("~/images/photo_not_available.png" + context.Request["image"]);
这里的第二个错误是你没有制作你的〜
的MapPath byte[] imageBytes = File.ReadAllBytes(
content.Request.MapPath("~/images/photo_not_available.png"));
或者您可以将其称为@zapthedingbat建议。
还有一个问题,你从
开始 context.Response.ContentType = "text/plain";
然后将其更改为
context.Response.ContentType = "image/png";
答案 1 :(得分:1)
您可以使用HttpResponse.TransmitFile方法
吗?Response.TransmitFile(context.Request.MapPath("~/images/photo_not_available.png"));