仓酷云

标题: ASP教程之使用Adodb.Stream间接下载文件 [打印本页]

作者: 第二个灵魂    时间: 2015-1-16 23:40
标题: ASP教程之使用Adodb.Stream间接下载文件
因为ASP脚本语言非常简单,因此其代码也简单易懂,结合HTML代码,可快速地完成网站的应用程序。还无法完全实现一些企业级的功能:完全的集群、负载均横。ado|stream|下载|ado|stream|下载在扫瞄器的地点栏里间接输出一个doc或xls或jpg的文件的url路径,那末该文件会间接显现在扫瞄器里。而在良多时分我们但愿能间接弹出下载提醒框让用户下载,我们该怎样办呢?这里有两种办法:
1、设置你的服务器的iis,给doc等后缀名做映照
2、在向客户端发送时设置其contenttype

上面具体申明办法2
程序代码:


_codestyle="DISPLAY:none"name="html_code"><%
Response.Buffer=true
Response.Clear

dimurl
Dimfso,fl,flsize
dimDname
DimobjStream,ContentType,flName,isre,url1
*********************************************挪用时传进的下载文件名
Dname=trim(request("n"))
******************************************************************
IfDname""Then
******************************下载文件寄存的服务端目次
url=server.MapPath("/")&""&Dname
***************************************************
EndIf

Setfso=Server.CreateObject("Scripting.FileSystemObject")
Setfl=fso.getfile(url)
flsize=fl.size
flName=fl.name
Setfl=Nothing
Setfso=Nothing
%>
<%
SetobjStream=Server.CreateObject("ADODB.Stream")
objStream.Open
objStream.Type=1
objStream.LoadFromFileurl


SelectCaselcase(Right(flName,4))
Case".asf"
ContentType="video/x-ms-asf"
Case".avi"
ContentType="video/avi"
Case".doc"
ContentType="application/msword"
Case".zip"
ContentType="application/zip"
Case".xls"
ContentType="application/vnd.ms-excel"
Case".gif"
ContentType="image/gif"
Case".jpg","jpeg"
ContentType="image/jpeg"
Case".wav"
ContentType="audio/wav"
Case".mp3"
ContentType="audio/mpeg3"
Case".mpg","mpeg"
ContentType="video/mpeg"
Case".rtf"
ContentType="application/rtf"
Case".htm","html"
ContentType="text/html"
Case".txt"
ContentType="text/plain"
CaseElse
ContentType="application/octet-stream"
EndSelect


Response.AddHeader"Content-Disposition","attachment;filename="&flName
Response.AddHeader"Content-Length",flsize

Response.Charset="UTF-8"
Response.ContentType=ContentType

Response.BinaryWriteobjStream.Read
Response.Flush
response.Clear()
objStream.Close
SetobjStream=Nothing

%>
_lightcodestyle="BORDER-RIGHT:#9999991pxdotted;PADDING-RIGHT:5px;BORDER-TOP:#9999991pxdotted;PADDING-LEFT:5px;FONT-SIZE:11px;PADDING-BOTTOM:5px;BORDER-LEFT:#9999991pxdotted;PADDING-TOP:5px;BORDER-BOTTOM:#9999991pxdotted;FONT-FAMILY:sans-serif;HEIGHT:40px;BACKGROUND-COLOR:#f9f9f9"name="html_lightcode"><%
Response.Buffer=true
Response.Clear

dimurl
Dimfso,fl,flsize
dimDname
DimobjStream,ContentType,flName,isre,url1
*********************************************挪用时传进的下载文件名
Dname=trim(request("n"))
******************************************************************
IfDname""Then
******************************下载文件寄存的服务端目次
url=server.MapPath("/")&""&Dname
***************************************************
EndIf

Setfso=Server.CreateObject("Scripting.FileSystemObject")
Setfl=fso.getfile(url)
flsize=fl.size
flName=fl.name
Setfl=Nothing
Setfso=Nothing
%>
<%
SetobjStream=Server.CreateObject("ADODB.Stream")
objStream.Open
objStream.Type=1
objStream.LoadFromFileurl


SelectCaselcase(Right(flName,4))
Case".asf"
ContentType="video/x-ms-asf"
Case".avi"
ContentType="video/avi"
Case".doc"
ContentType="application/msword"
Case".zip"
ContentType="application/zip"
Case".xls"
ContentType="application/vnd.ms-excel"
Case".gif"
ContentType="image/gif"
Case".jpg","jpeg"
ContentType="image/jpeg"
Case".wav"
ContentType="audio/wav"
Case".mp3"
ContentType="aud</p>由于ASP还是一种Script语言所没除了大量使用组件外,没有办法提高其工作效率。它必须面对即时编绎的时间考验,同时我们还不知其背后的组件会是一个什么样的状况;
作者: 透明    时间: 2015-1-20 10:59
封装性使得代码逻辑清晰,易于管理,并且应用到ASP.Net上就可以使业务逻辑和Html页面分离,这样无论页面原型如何改变,业务逻辑代码都不必做任何改动;继承性和多态性使得代码的可重用性大大提高。
作者: 海妖    时间: 2015-1-29 06:53
不能只是将它停留在纸上谈兵的程度上。
作者: 金色的骷髅    时间: 2015-2-5 23:44
我认为比较好的方法是找一些比较经典的例子,每个例子比较集中一种编程思想而设计的。
作者: 兰色精灵    时间: 2015-2-14 05:57
下面简单介绍一下我学习ASP的方法,希望对想学习ASP的朋友有所帮助...
作者: 谁可相欹    时间: 2015-3-4 04:59
哪些内置对象是可以跳过的,或者哪些属性和方法是用不到的?
作者: 再现理想    时间: 2015-3-19 02:52
我们必须明确一个大方向,不要只是停留在因为学而去学,我们应有方向应有目标.
作者: 仓酷云    时间: 2015-3-27 05:45
多看多学多思。多看一些关于ASP的书籍,一方面可以扩展知识面一方面可以鉴借别人是如何掌握、运用ASP的;多学善于关注别人,向同学老师多多学习,不论知识的大小;多思则是要将学到的知识灵活运用。




欢迎光临 仓酷云 (http://ckuyun.com/) Powered by Discuz! X3.2