以文本方式查看主题 - 中文XML论坛 - 专业的XML技术讨论区 (http://bbs.xml.org.cn/index.asp) -- 『 XML基础 』 (http://bbs.xml.org.cn/list.asp?boardid=1) ---- [原创]asp获取ACCESS二进制图片到XML文件并还原的例子! (http://bbs.xml.org.cn/dispbbs.asp?boardid=1&rootid=&id=18819) |
-- 作者:dickyq -- 发布时间:5/25/2005 4:38:00 PM -- [原创]asp获取ACCESS二进制图片到XML文件并还原的例子! 这帖子分二部分: 1: asp获取ACCESS二进制图片到XML文件并还原的例子!: 请看6楼的代码部分: 2: 下面的代码经过我的测试,已经成功用ASP+XML备份ACCESS数据库! 1.获得数据文件的 getpic.asp: <% dim rs,xmldoc,xmldom,xmlnode '定义对象 dim sourcefile 'set showinfo = new showclass 'showinfo.dbopen() 'showinfo.mysql = "select pro from [pro] where type = 'flyship'" 'set rs = showinfo.myrs() ' response.binarywrite rs(0) ' response.end sourcefile = server.mappath("loadpic.xml") set xmldom = server.createobject("Microsoft.XMLDOM") xmldom.load(sourcefile) set xmldoc = xmldom.documentElement.selectSingleNode("image") set adostream = server.createobject("ADODB.Stream") adostream.type = 1 adostream.open() adostream.loadfromfile(server.mappath("right.htm")) set xmlnode = xmldom.createElement("imagedata") xmlnode.datatype = "bin.base64" xmlnode.nodeTypedValue = adostream.read() adostream.close xmldoc.appendchild(xmlnode) XMLdom.save(sourcefile) set xmlnode = nothing set xmldoc = nothing set xmldom = nothing set rs = nothing set showinfo = nothing response.write "ok" %> '================================= 2.loadpic.xml 文件: <?xml version="1.0" encoding="gb2312"?> <picture> <image> <imagedata xmlns:dt="urn:schemas-microsoft-com:datatypes" dt:dt="bin.base64">PGh0bWw+PC9odG1sPg==</imagedata></image> </picture> '============================================= 3.loadpic.asp 文件: <% dim xmldoc,xmldom,xmlnode '定义对象 dim sourcefile sourcefile = server.mappath("loadpic.xml") set xmldom = server.createobject("Microsoft.XMLDOM") xmldom.load(sourcefile) set xmldoc = xmldom.documentElement.selectSingleNode("image/imagedata") 'response.write instr(xmldoc.nodetypedValue,"/") 'response.end set adostream = server.createobject("ADODB.Stream") adostream.type = 1 adostream.open adostream.write xmldoc.nodeTypedValue adostream.savetofile "index.htm",2 adostream.close set xmldoc = nothing set xmldom = nothing set adostream = nothing response.write "ok" %>
[此贴子已经被作者于2005-7-8 17:41:02编辑过]
|
-- 作者:Qr -- 发布时间:5/25/2005 10:06:00 PM -- set xmldoc = xmldom.documentElement.selectSingleNode("image/imagedata") response.write xmldoc.nodetypedvalue'(结果乱码) 因此,偶觉得代码可能还有其它问题,而不仅是楼主所指出的问题。比如adodb.stream对象的方法或属性可能设置不大正确。 顺便问一下,偶对xmlnode.datatype = "bin.base64"不熟悉,取得imagedata的内容PGh0bWw+PC9odG1sPg==后如何还原为原始内容?用DOM 还是 XSL? |
-- 作者:dickyq -- 发布时间:5/26/2005 9:06:00 AM -- 哦,昨天头上火,忘了是image/imagedata 了!~ 现在成功了!~~~~ 其实就这几行代码就实现了文件复制,移动,备份等功能拓展了! |
-- 作者:Qr -- 发布时间:5/26/2005 12:17:00 PM --
原来如此,又学一招。送鲜花两朵! |
-- 作者:小鞋子 -- 发布时间:5/30/2005 1:15:00 PM -- http://bbs.xml.org.cn/dispbbs.asp?boardID=1&ID=6256 这一贴是我以前发过的.也是base64方面的.呵呵.向你学习 |
-- 作者:dickyq -- 发布时间:5/31/2005 11:48:00 AM --
我看了你的帖子,我做了个测试! 呵呵, 我是直接从AC库导出二进制图片数据到XML, 交流一下! putpic.asp : <!--#include file="pageclass.asp" --> <% dim XMLdom,XMLdoc set showinfo = new showclass showinfo.dbopen() showinfo.mysql = "select [pro] from [protable] where [type] = 'spz1'" set rs = showinfo.myrs() set XMLdom = server.createobject("Microsoft.XMLDOM") XMLdom.loadXML "<?xml version=" & chr(34) & "1.0" & chr(34) &" encoding=" & chr(34) & "gb2312" & chr(34) & "?><imagedata/>" XMLdom.documentElement.Datatype = "bin.base64" XMLdom.documentElement.nodeTypeDValue = rs("propic").getchunk(7500000) '//这里导出图片数据 set XMLdoc = server.createobject("Microsoft.XMLDOM") XMLdoc.load xmldom XMLdoc.save server.mappath("../xml") & "/rsxml.xml" '//保存XML文件 set XMLdoc = nothing set XMLdom = nothing %> s processIMAGE.asp: <% dim xmldom,xmldoc set xmldom = server.createobject("Microsoft.XMLDOM") xmldom.validateOnParse = True xmldom.load(server.mappath("rsxml.xml")) set xmldoc = xmldom.documentElement response.contenttype = "image/*" response.binarywrite xmldoc.nodetypeDValue set xmldoc = nothing set xmldom = nothing %> showimage.asp: <img src="processIMAGE.asp" border="0"> rsxml.xml:
[此贴子已经被作者于2005-6-15 21:14:22编辑过]
|
-- 作者:dickyq -- 发布时间:6/15/2005 9:15:00 PM -- 这帖子与大家一起分享!~ 认为好的,多多支持! |
-- 作者:jimmysu -- 发布时间:6/18/2005 11:50:00 AM -- 楼主的代码是不是全部正确的?,正在学习中。。。 |
-- 作者:小鞋子 -- 发布时间:6/22/2005 9:15:00 AM -- 对于数据库我真的不太熟悉,即然都是ASP以base64方式来读取和写入的话.我觉得和ACCESS里的二进制数据是一样的吧:)(PS:还没有空证实:)) 你的方法也很满实用的.我试过如果ASP服务器上没有安装MSXML的话,是无法进行的.不知道你的ACCESS里的读取会不会有这样的问题 |
-- 作者:Qr -- 发布时间:6/22/2005 9:38:00 AM -- ACCESS用二进制存储数据,可直接将图片写到浏览器。如果是ASP以base64方式读写,用MSXML才好写代码,直接输出的话有困难。 |
-- 作者:lubricity -- 发布时间:7/8/2005 11:53:00 PM -- 呵呵呵,顶一下,学习............^_^ |
-- 作者:lubricity -- 发布时间:7/9/2005 1:10:00 AM -- 呵呵呵,在此问一个小小的问题; 问题如下: 1。问不知可不可以通过上述的方式,向图片中插入文字; 2。类似通过PHP向图片插入文字那样 3。问题完 4。谢谢 5。^_^ |
W 3 C h i n a ( since 2003 ) 旗 下 站 点 苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》 |
125.000ms |