当前位置: 首页 > 图文教程 > 网络编程 > ASP > ASP中巧用Response属性 -- contenttype

ASP
asp数个使用技巧
存储过程里的递归 实现方法
非常不错的列出sql服务器上所有数据库的asp代码
防范ASP木马的十大基本原则强列建议看下
雷客图ASP站长安全助手的ASP木马查找功能
防止别人盗链的好方法推荐
图片的入库与读取的方法
用asp实现无组件生成验证码的方法2种
用asp实现检测文件编码
[asp]怎么添加验证码的解决方法
ASP文章系统解决方案实现上一页下一页
ASP编程入门进阶(三):接触脚本程序
ASP编程入门进阶(四):内置对象Request
ASP编程入门进阶(五):内置对象Response
ASP编程入门进阶(六):Cookies讲座
ASP编程入门进阶(八):内置对象Session
ASP编程入门进阶(九):内置对象Application
ASP编码优化技巧8则
ASP编程入门进阶(十):Global.asa文件
ASP编程入门进阶(十一):Chat聊天程序

ASP中巧用Response属性 -- contenttype


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-08-14   浏览: 169 ::
收藏到网摘: n/a

我在用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,否则会将其作为一个不能识别的资源,提示用户保存起来,而不是打开它)将它打开。经试验效果很好,方法简单且速度很快,而且在IE 5中浏览器使用内嵌方式(类似于OLE方式)打开,效果更佳。以下是程序内容。

---- 假设表名tab_word,表中有两个字段,一个是整型,名id,用作Word数据的唯一标识,另一个Blob型,名worddata,里面存放Word数据。现在要在页面上显示id等于1的Word文件内容, ASP程序如下: