二进制的图片如何显示在网页上??????

林少1024 2010-11-24 10:04:08
代码如下:
SqlConnection con = new SqlConnection(strConn);
con.Open();
SqlCommand com = new SqlCommand("select top 1 photo from employees where photo is not null", con);
SqlDataReader dr = com.ExecuteReader();
dr.Read();
//Response.ContentType = "application/octet-stream";
Response.ContentType = "image/jpeg";
byte[] sss = (byte[])dr["photo"];

Response.BinaryWrite((byte[])sss);
Image1.Attributes.Add("src","Default3.aspx");

结果:
出现了一个文件下,在文件来的下级目录才会显示图片;Documents and Settings/hm_user_026/桌面/新資料夾/1.jpg;

听说这二进制是压缩了,
如何求解;
...全文
941 31 打赏 收藏 转发到动态 举报
写回复
用AI写文章
31 条回复
切换为时间正序
请发表友善的回复…
发表回复
Dobzhansky 2010-11-24
  • 打赏
  • 举报
回复
你要判断流中数据格式,
以便得到一个正确的 mime 格式,
才能往浏览器推数据.

如何推图像数据的代码太多了.
lek_koko 2010-11-24
  • 打赏
  • 举报
回复
stringReader流模式存储,Response.BinaryWrite(),输出.
sunzhi523 2010-11-24
  • 打赏
  • 举报
回复
以后多多交流 哦。。。
newdigitime 2010-11-24
  • 打赏
  • 举报
回复
default3.aspx前台代码是?
林少1024 2010-11-24
  • 打赏
  • 举报
回复
继续求解
林少1024 2010-11-24
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 panchunlong 的回复:]
解压码后运用不行吗
[/Quote]

怎样解压??
xrongzhen 2010-11-24
  • 打赏
  • 举报
回复
怀疑是路径问题 把两个aspx文件放到一个同一目录下,直接相对路径src="a.aspx"试试
林少1024 2010-11-24
  • 打赏
  • 举报
回复
压缩好像是供应商写入数据库时,就好像压缩了....
林少1024 2010-11-24
  • 打赏
  • 举报
回复

Default3.aspx
protected void Page_Load(object sender, EventArgs e)
{
SqlConnection con = new SqlConnection(strConn);
con.Open();
SqlCommand com = new SqlCommand("select top 1 photo from employees where photo is not null", con);
SqlDataReader dr = com.ExecuteReader();
dr.Read();
Response.ClearContent();
Response.ContentType = "image/jpeg";
byte[] sss = (byte[])dr["photo"];
Response.BinaryWrite((byte[])sss);



}
Default4.aspx

<img src="Default3.aspx" alt="ss" />
xrongzhen 2010-11-24
  • 打赏
  • 举报
回复
网上找个验证码的代码 看看 就什么都明白了


System.IO.MemoryStream ms = new System.IO.MemoryStream();
...
Response.ClearContent();
Response.ContentType = "image/Gif";
Response.BinaryWrite(ms.ToArray());



newdigitime 2010-11-24
  • 打赏
  • 举报
回复
"a.aspx 运行的结果为 Default3[1].zip"
且不说别的,
a.aspx为什么会出default3?

把你的a.aspx前台以及a.aspx.cs代码完整地放出来

hwbox 2010-11-24
  • 打赏
  • 举报
回复
你是不是打开了iis的应用服务压缩选项了

打开Internet信息服务(IIS)管理器,右击"网站"->"属性",选择"服务"。在"HTTP压缩"框中不要选中"压缩应用程序文件"和"压缩静态文件";再试一下。另,你好象用的ie5,非常抱歉的是gzip技术要ie5.5以上才支持。要做多浏览器支持应用就别用太多新技术。
panchunlong 2010-11-24
  • 打赏
  • 举报
回复
解压码后运用不行吗
林少1024 2010-11-24
  • 打赏
  • 举报
回复
关键是运行得到一个压缩文件.ZIP 图片在这个压缩包里面..而网页
soon1233211 2010-11-24
  • 打赏
  • 举报
回复
你去了解一下关于ashx方面的知识可能管用。
林少1024 2010-11-24
  • 打赏
  • 举报
回复
a.aspx 运行的结果为 Default3[1].zip 这个压缩包. 压缩包的路径为:C:\Documents and Settings\Administrator\Local Settings\Temporary Internet Files\Content.IE5\CFRBIO1H\Default3[1].zip\Documents and Settings/hm_user_026/桌面/新資料夾\1.jpg
林少1024 2010-11-24
  • 打赏
  • 举报
回复
C:\Documents and Settings\Administrator\Local Settings\Temporary Internet Files\Content.IE5\CFRBIO1H\Default3[1].zip\Documents and Settings/hm_user_026/桌面/新資料夾\1.jpg 这是a.aspx中文件的地址....
林少1024 2010-11-24
  • 打赏
  • 举报
回复
已经按照上一楼的做法去实现,但还是不能显示
newdigitime 2010-11-24
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 yeisman 的回复:]

显示不了,,,这图片好像是压缩了的,但下载下来的文件中有那张图片可正常显示;;;
[/Quote]
你这个代码本来就写得有问题.
下面这句画蛇添足:
Image1.Attributes.Add("src","Default3.aspx");

因为你前面的代码是用来直接输出二进制流,你却又在这个aspx上弄了个image控件

这个文件的aspx部分不要弄任何UI相关东西,只是在CS里写上输出代码.

正确方法:
1.输出二进制图片的(也就是你写Response.BinaryWrite((byte[])sss)代码的)aspx保存为a.aspx
2.另建一个b.aspx,在这个b.aspx中
<img src="a.aspx" />


林少1024 2010-11-24
  • 打赏
  • 举报
回复
显示不了,,,这图片好像是压缩了的,但下载下来的文件中有那张图片可正常显示;;;
加载更多回复(11)

62,046

社区成员

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

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

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

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