CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  .NET技术 >  ASP.NET

如何显示图片。

楼主FlyingHero(雁翔工作室)2002-01-21 21:52:24 在 .NET技术 / ASP.NET 提问

在数据库的某一字段中存有图片(jpg   or   bmp),如何在网页中将其显示出来? 问题点数:73、回复次数:5Top

1 楼nn18(nn)回复于 2002-01-22 08:07:13 得分 20

using   System.IO  
  定义一个MemoryStream对象  
  他有一个writer方法,格式为(字节数组,偏移,长度)  
  其中字节数组是Command对象从数据库字段生成的  
  用MemoryStream   对象创建Bitmap  
  Response.ContenType="image/gif"  
  调用Bitmap的Save方法。  
   
  具体的思路好象是这样,原码在一个网站上,我找找  
   
  Top

2 楼xdsui()回复于 2002-01-22 08:20:12 得分 25

acptvb告诉我的:  
   
  对于这个问题,您可以参考一下以下的文章。以下的文章提供了详细的代码:  
   
  VB:  
   
  ID:   Q308042     HOW   TO:   Read   and   Write   BLOB   Data   Using   ADO.NET   with   Visual   Basic[webdatanetkb]  
   
  http://support.microsoft.com/support/kb/articles/q308/0/42.asp  
   
  C#:  
   
  ID:   Q309158     HOW   TO:   Read   and   Write   BLOB   Data   Using   ADO.NET   with   Visual   C#   [webdatanetkb]  
   
  http://support.microsoft.com/support/kb/articles/q309/1/58.asp  
   
  我的办法是按照文章中的做法将数据读出来后形成一个文件如:beauty.gif保存在硬盘中,然后在网页上动态写入一个链接,指向这个图片即可。  
  非常好用。问题是数据库中必须还有一个字段指定文件的扩展名,以再程序中识别文件类型。  
  Top

3 楼icyer()回复于 2002-01-22 08:38:41 得分 28

不用指定扩展名!  
   
  我以前也遇到过这种扩展名改变之后就不能显示的情况,以下是我的解决方法:  
          Public   Function   BuildImage(ByVal   strau_id   As   String)   As   String  
                  dv.RowFilter   =   "au_id='"   &   strau_id   &   "'"  
                  If   dv.Count   =   0   Then  
                          dv.RowFilter   =   ""  
                          Return   ("")  
                  End   If  
                  If   IsDBNull(dv(0)("image"))   Then  
                          dv.RowFilter   =   ""  
                          Return   ("")  
                  End   If  
   
                  Dim   strImagePath   As   String   =   MapPath(strau_id   &   ".jpg")  
                  Dim   strImagePath1   As   String   =   MapPath(strau_id   &   "1.jpg")  
   
                  Dim   imgData()   As   Byte  
                  imgData   =   dv(0)("image")  
                  dv.RowFilter   =   ""  
                  Dim   fs   As   New   IO.FileStream(strImagePath1,   IO.FileMode.Create,   IO.FileAccess.Write)  
                  fs.Write(imgData,   0,   UBound(imgData))  
                  fs.Close()  
                  fs   =   New   IO.FileStream(strImagePath1,   IO.FileMode.Open,   IO.FileAccess.Read)  
                  Dim   img   As   System.Drawing.Image  
                  img   =   System.Drawing.Image.FromStream(fs)   '重新保存图片,之后就不会有扩展名的问题了。  
                  img.Save(strImagePath,   System.Drawing.Imaging.ImageFormat.Jpeg)  
                  img   =   Nothing  
                  fs.Close()  
                  fs   =   Nothing  
                  Dim   file   As   IO.File  
                  file.Delete(strImagePath1)  
                  file   =   Nothing  
   
                  Return   (strImagePath)  
          End   Function  
  我是在pubs数据库的Authors表中增加了一个image类型的字段image。  
   
  在界面设计中,把Image.Src指向这个函数就可以了:  
  <asp:Image   id="img"   Runat="server"   src='<%#   BuildImage(DataBinder.Eval(Container,"DataItem.au_id"))%>'   Visible='<%#   ImageVisible(DataBinder.Eval(Container,"DataItem.au_id"))%>'></asp:Image>  
   
  ImageVisible函数功能:当数据库中有图片数据时,显示Image控件,否则不显示。  
          Public   Function   ImageVisible(ByVal   strau_id   As   String)   As   Boolean  
                  Dim   blnImage   As   Boolean   =   False  
                  dv.RowFilter   =   "au_id='"   &   strau_id   &   "'"  
                  If   dv.Count   =   1   Then  
                          If   (Not   IsDBNull(dv(0)("image")))   Then  
                                  blnImage   =   True  
                          End   If  
                  End   If  
                  dv.RowFilter   =   ""  
                  Return   (blnImage)  
          End   Function  
   
  Top

4 楼xdsui()回复于 2002-01-22 13:54:53 得分 0

icyer的方案很不错!Top

5 楼netscaler()回复于 2002-01-23 11:13:08 得分 0

你们说的扩展名的问题是不是从数据库中读出图片写入文件后在浏览器中无法显示,我现在遇到一个问题就是有些生成的图片文件在浏览器中无法显示,但在ACDSEE中可以看,是否就是这个问题?Top

相关问题

  • 如何显示图片?
  • 如何显示图片?
  • 如何显示图片
  • 如何在grid中显示图片
  • 如何在 picturebox 中显示*.jpg 图片?
  • 如何在ComboBox中显示图片
  • 50分求教如何显示图片!!!
  • ★★★★★★ 如何显示tif格式的图片?
  • DBImage控件如何显示JPG图片?
  • 在PB中如何显示PCX图片

关键词

  • ado.net
  • dv
  • 字段
  • 数据库
  • 文件
  • strimagepath
  • 扩展名
  • strau
  • rowfilter
  • blnimage

得分解答快速导航

  • 帖主:FlyingHero
  • nn18
  • xdsui
  • icyer

相关链接

  • CSDN .NET频道
  • .NET类图书
  • C#类图书
  • .NET类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo