仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 564|回复: 7
打印 上一主题 下一主题

[学习教程] ASP教程之使用Adodb.Stream间接下载文件

[复制链接]
第二个灵魂 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 23:40:45 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
因为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:36 | 只看该作者
封装性使得代码逻辑清晰,易于管理,并且应用到ASP.Net上就可以使业务逻辑和Html页面分离,这样无论页面原型如何改变,业务逻辑代码都不必做任何改动;继承性和多态性使得代码的可重用性大大提高。
海妖 该用户已被删除
板凳
发表于 2015-1-29 06:53:46 | 只看该作者
不能只是将它停留在纸上谈兵的程度上。
金色的骷髅 该用户已被删除
地板
发表于 2015-2-5 23:44:05 | 只看该作者
我认为比较好的方法是找一些比较经典的例子,每个例子比较集中一种编程思想而设计的。
兰色精灵 该用户已被删除
5#
发表于 2015-2-14 05:57:54 | 只看该作者
下面简单介绍一下我学习ASP的方法,希望对想学习ASP的朋友有所帮助...
谁可相欹 该用户已被删除
6#
发表于 2015-3-4 04:59:02 | 只看该作者
哪些内置对象是可以跳过的,或者哪些属性和方法是用不到的?
再现理想 该用户已被删除
7#
发表于 2015-3-19 02:52:14 | 只看该作者
我们必须明确一个大方向,不要只是停留在因为学而去学,我们应有方向应有目标.
8#
发表于 2015-3-27 05:45:05 | 只看该作者
多看多学多思。多看一些关于ASP的书籍,一方面可以扩展知识面一方面可以鉴借别人是如何掌握、运用ASP的;多学善于关注别人,向同学老师多多学习,不论知识的大小;多思则是要将学到的知识灵活运用。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-5-28 07:43

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表