利用ASP.NET显示Sql Server 2000数据库里面的图片的问题.试过很多方法都不行.
大家好,我想利用ASP.net显示数据库里面的图片,这个问题一直得不到解决.试过网上查找的很多
方法都不行.希望这里有人很够帮助我.感谢!
情况如下:
1.公司购买了一套人事系统,里面有一个Employees表的Photo字段为Image类型;
2.按照网上的方法显示不出这张图片,但用同样的方法却可以显示出Northwind里面的图片却可以
;
3.后来问过供应商,他们给出的方法如下:
-----------------------------------------------
-------------
員工相片存儲於數據庫的“Employees”表、“Photo”列裡頭,它是一個二進制的格式,把第40
個字節後的數據提取出來;
然後,將提取的數據通過二進制的轉換程序,把這串數據還原爲圖片即可。
-----------------------------------------------
-------------
4.用了上面的方法还是不行,后来他们又提供了两个DLL文件并给出以下方法:
-----------------------------------------------
-------------
注意事项
1:需要注册 unzipPhoto.dll 和 unzip32.dll
解压方法:
调用 unzipPhoto.dll 文件 clsUnzipPhoto 类中 PhotoUnZip 方法
1:参数 员工表记录集(必须包含 number 和photo),导出路径
输出结果:在指定的导出路径下输出员工照片文件(文件名称为员工的number)
示例:vb 调用
dim strSQL as string
Dim test As UnzipPhoto.clsUnzipPhoto
Dim cnDataBase As ADODB.Connection
Dim rsExpPortPhoto As ADODB.Recordset
Set rsExpPortPhoto = New ADODB.Recordset
Set test = New UnzipPhoto.clsUnzipPhoto
strSQL = "SELECT top 1 number,Photo FROM Employees WHERE Photo IS NOT NULL "
rsExpPortPhoto.Open strSQL, cnDataBase, adOpenForwardOnly, adLockReadOnly
aa.PhotoUnZip rsExpPortPhoto, "C:\photo"
-----------------------------------------------
-------------
5.以上方法是把数据库的图片导出来保存为jpg文件的,但如果在ASP.NET网页上显示出来呢?
6.如果是有心人,我把整个系统发给你.因为程序为81MB,邮箱发比较吃力.请加我的QQ:6310770.
感谢!!!!
------解决方案--------------------如果都能导出图片了,在ASP.net上显示就更简单了,导出到临时目录,用一个图片控件,设置图片路径不就可以了吗?如果要用在datagrid里,可以用模板列哦。
------解决方案--------------------这么复杂的程序也很少见的,居然放数据库里面还要压缩和加密!
解决办法基本上就是上面说的,放在一个临时文件架里面然后指定路径就可以了
------解决方案--------------------用输出二进制流文件...然后<img src='pic.aspx'>可以读出图片
------解决方案--------------------支持楼上的
------解决方案--------------------通常做法将图片放到某一文件夹中,数据库中保存图片的路径。
说到MS SQL数据库中的图片 听说过取二进制数据40位后的为真正的图片,但没有具体试过。
------解决方案--------------------新建一个页面img.aspx,在pageload里写
Response.ClearContent();
Response.ContentType = "image/jpeg";
Response.BinaryWrite(这里输入你从Image字段里读出来的byte[]);
然后调用<img src="img.aspx"/>
------解决方案--------------------2005里带的个人网站示例初学者工具包,这个网站上有一个ashx文件,从数据库里将images类型的字段还原成图片,估计和wuxing2006说的一样。别笑我菜啊,我就知道这些。