从数据库中读取二进制图片并显示的问题

sdnjwang 2009-10-21 11:45:55
请看下面的代码:

using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using BSMS.Models;
using BSMS.BLL;

public partial class ProjectMessage_GetImage : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
this.ShowImage();
}

ProImage proimage = new ProImage();
ProImageManage proimagemng = new ProImageManage();

private void ShowImage()
{
try
{
//context.Response.ContentType = "text/plain";
//context.Response.Write("Hello World");
string imagestr = Request.QueryString["ImID"].ToString();
int imageid = Convert.ToInt16(imagestr);

proimage = proimagemng.GetImageByID(imageid);
Response.ContentType = "application/octet-stream";
Response.BinaryWrite(proimage.ImageData);
}
catch (Exception ex)
{
//JScript.Alert(UpdatePanel1, ex.Message, this.Page);
JScript.Alert(ex.Message, this.Page);
}
finally
{ }
}
}



我是用上面的一段代码向图片控件返回图片的。

问题是:当传送过来的ImID是相同的话,它不会重新运行该页面(类)的,返回的图片还是第一次调用的时候返回到图片。如果在数据库中,重新修改了图片,那么,他是不会返回新的图片的
请问:应该如何做修改?或者如何做?
...全文
332 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
sdnjwang 2009-10-22
  • 打赏
  • 举报
回复
多谢各位,解题了
lfywy 2009-10-22
  • 打赏
  • 举报
回复
关键在以下:
Response.ContentType = "image/jpeg";//读写类型 一定要设置 否则浏览器会当作文本输出
Response.BinaryWrite((byte[])dt.Rows[0]["IMAGE"]);//图片数据
namhyuk 2009-10-22
  • 打赏
  • 举报
回复
我也不太懂application/octet-stream是什么?

网上搜到的一个回复是:

application/octet-stream:可以把文件以二进制的方式,输出到客户端(浏览器),把contenttype设为就会自动出下载窗口。。。。

显示二进制我一般是在.ashx里做.

大概是
byte[] bytes = (byte[])SqlCommand.ExecuteScalar();
然后Response.ContentType = "application/jpeg";
然后就是BinaryWrite了.

周公 2009-10-22
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 jshi123 的回复:]
在访问图片的地方加一个随即参数,如:
<img src="ProjectMessage_GetImage.aspx&ImID=xx&t= <%= new Random().Next() %>" />
[/Quote]
可以这么做。但是在真实的项目中,没有特殊的要求没有人会将图片以二进制的形式存放到数据库中的。都是存放图片路径,因为存放图片数据导致网页速度减慢,数据库性能降低。
jshi123 2009-10-22
  • 打赏
  • 举报
回复
在访问图片的地方加一个随即参数,如:
<img src="ProjectMessage_GetImage.aspx&ImID=xx&t=<%= new Random().Next() %>" />

62,073

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧