|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
ASP脚本是采用明文(plain text)方式来编写的。response 我在用ASP为某单元制造网页时碰到如许一个成绩,单元之前的MIS体系中将一些Word文件以字撙节的模式保留在数据库中,如今用户请求我用ASP将这些Word文件数据从数据库中掏出并在网页中显示出来。入手下手我天然地想到在办事器上创立一时文件、然后在网页中增添一个指向这个一时文件的链接,但这个办法将大大增添办事器的承当不说,并且在办事上若何包管特定客户端所利用的一时文件不被其它客户端利用的文件掩盖,若何在文件传送给用户后将文件删除,这些成绩在实践都难很好处理。那末有无更好的举措呢? 为此我细心检查了一下ASP的参考书,发明Response对象有一个叫contenttype的属性,它界说办事器发送给客户端内容的MIME类型。MIME全称Multipurpose Internet Mail Extensions,即多功效Internet邮件扩大。咱们晓得,在网页编程中咱们有时将超链接指向一个Word或Excel文件,当用户点击这个链接时阅读器会主动挪用对应办法将这个文件翻开。之所以能做到这点就是由于用户机械上装置office后会在阅读器中注册对应的MIME资本类型。好比说word文件的MIME类型是Application/msword(前者是MIME类型,后者是MIME子类),Excel文件的MIME资本类型是Application/msexcel。现实上,但凡阅读器能处置的一切资本都有对应的MIME资本类型,好比说html文件的MIME类型是Text/html,JPG文件的MIME类型是Image/JPG。在与办事器的交互中,阅读器就是依据所承受数据的MIME类型来判别要停止甚么样的处置,对html、JPG等文件阅读器直接将其翻开,对Word、Excel等阅读器本身不克不及翻开的文件则挪用响应办法翻开。对没有标志MIME类型的文件,阅读器则依据其扩大名和文件内容猜想其类型。假如阅读器没法猜出,则将它作为application/octet-stream。要懂得各类文件的MIME类型,请在win98 我的电脑->检查->文件夹选项->文件类型 中检查。
因而我心血来潮,想到在ASP中可以先将WORD数据以字撙节体例掏出,接着将其conntenttype属性标志为Application/msword,再将它发送给客户机,客户机收到这个资本后,依据其MIME类型,会主动挪用客户机上的Word(固然,条件是客户机上装了Word,不然会将其作为一个不克不及辨认的资本,提醒用户保留起来,而不是翻开它)将它翻开。经实验后果很好,办法复杂且速度很快,并且在IE5中阅读器利用内嵌体例(相似于OLE体例)翻开,后果更佳。以下是法式内容。
假定表名tab_word,表中有两个字段,一个是整型,名id,用作Word数据的独一标识,另外一个Blob型,名worddata,外面寄存Word数据。如今要在页面上显示id等于1的Word文件内容, ASP法式以下:
< %
' conn - 已创立的数据库毗连
' rs -- 了局集
rs = conn.execute("select
worddata from tab_word where id = 1")
response.contenttype = "Application/msword"
response.writebinary(rs("worddata"))
'注重将了局集中的数据直接用writebinary发送出去,不要用变量
'吸收这个数据,不然体系会报错
% >
用相似的办法,还可以处置Excel、Bmp等很多类型的数据。此法式在以下体系中测试经由过程:办事器:NT + IIS + SqlServer客户端:Win98 + IE5 或 Netscape4.x
</p> 缺点:正版成本价格贵(盗版就不说了)、不够安全,大多数服务器用windows系统,没有linux安全 |
|