ASP中巧用Response属性

原创 2000年08月10日 08:28:00
---- 我在用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

丁波涛(武汉大学传播与信息学院98研)

ASP连接ACCESS数据库提示ODBC 驱动程序不支持所需的属性怎么解决

login.asp: 连接文件connect.asp: 文件目录树: 错误信息: 数据库是这样的: 此类错误一般出现于文件...
  • andyjiang2008
  • andyjiang2008
  • 2014年11月22日 13:18
  • 1015

Django中request和response中的属性方法详述

Django 使用 request 和 response 对象表示系统状态数据.. 当请求一个页面时,Django创建一个 HttpRequest 对象.该对象包含 request 的元数据. ...
  • u013177568
  • u013177568
  • 2017年03月16日 18:36
  • 317

asp.net中DropDownList控件各种属性研究汇总

.aspx代码如下: AutoPostBack="True" > ...
  • yayun0516
  • yayun0516
  • 2014年12月08日 10:02
  • 1759

巧用mybatis 的<foreach>标签的 index 属性解决批量排序值问题

简介 在实际的工作中,我们往往遇到批量数据保存 或者编辑的时候需要进行 排序字段 设置保存排序顺序的问题。大多的时候,我们选择在代码中进行遍历设置,其实这种选择存在一个问题,主要是我们更多的时候...
  • chenxinchongcn
  • chenxinchongcn
  • 2017年04月21日 14:08
  • 1206

Response属性及方法

using System; using System.Web; public class flush : IHttpHandler { public void ProcessReq...
  • Fanbin168
  • Fanbin168
  • 2014年02月12日 23:00
  • 2450

Asp.net第一章一般处理程序和request,response,server对象

asp.net运行机制: 浏览器-->服务器电脑-->iis-->aspnet_isapi.dll -->FrameWork-->HttpRuntime-->HttpContent -->HttpAp...
  • xiaohuaidan1988
  • xiaohuaidan1988
  • 2014年05月19日 00:51
  • 1001

Asp的两个内置对象request和response

一、 什么是对象 提供一系列的集合、属性、方法的实体。 1.      内置对象:由asp默认提供的一组对象,基于asp对象模型的建立的 2.      Request对象 为脚本提供客户端请求一个页...
  • u010717334
  • u010717334
  • 2015年06月09日 23:41
  • 279

ASP:FileUpload控件(文件上传控件)

FileUpload控件的主要功能是向指定目录上传文件,该控件包括一个文本框和一个浏览按钮。用户可以在文本框中输入完整的文件路径,或者单击浏览按钮选择需要上传的文件。FileUpload控件不会自动上...
  • vjudge
  • vjudge
  • 2014年07月23日 23:43
  • 1232

先锋缓存类(极度加速ASP和提高执行效率)

clsCache 公共属性  引用内容:  valid   返回是否有效。true表示有效,false表示无效。只读。   Version  获取类的版本信息。只读。...
  • lishimin1012
  • lishimin1012
  • 2015年12月31日 11:24
  • 870

如何正确使用width height 进行合理布局

第一次设计网页布局时往往不知道如何使用width 与 height
  • wp562846864
  • wp562846864
  • 2014年09月20日 20:47
  • 1076
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:ASP中巧用Response属性
举报原因:
原因补充:

(最多只允许输入30个字)