收录日期:2018/10/22 22:43:44 时间:2016/05/20 18:26:56 标签:ASP
是防盗连技术,我想通过ASP输出指定URL文件,而不是通过Response.Redirect转移到绝对地址~~
要如何做?
还有就是消耗如何?
是否消耗CPU?
将下面的东西存成download.asp
然后你就可以用a herf="http://xxx.xxx.com/download.asp?n=file.doc">download!</a>
来下载了!
------------------------------------------------------------
<%
Response.Buffer = true
Response.Clear

dim url
Dim fso,fl,flsize
dim Dname
Dim objStream,ContentType,flName,isre,url1
'*********************************************调用时传入的下载文件名
Dname=trim(request("n"))
'******************************************************************
If Dname<>"" Then
'******************************下载文件存放的服务端目录
url=server.MapPath("/")&"\"&Dname
'***************************************************
End If

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


Select Case lcase(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"
Case Else
ContentType = "application/octet-stream"
End Select



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

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

Response.BinaryWrite objStream.Read
Response.Flush
response.Clear()
objStream.Close
Set objStream = Nothing

%>

直接用fso来读硬盘文件,当然比直接写连接的下载多耗服务器资源
不可用~~~
不支持RAR哦
嗯!给我提供了一种思路!不错谢谢楼上的!!

如何实现这样的数据邦定呢?按目录的那种 TMD,生气,1块钱让我丢尽了人! 如此错误:java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener 请问怎么在vb中使用spread??? 大家帮我看看程序吧,有一个小错误始终解决不了! 在线等!小问题!如何将数据库中的某一字段的内容原样写入文本框!!???? 有没有人会ASP在线编辑器??? 请问报表工具实现的基本原理 使用数据库的网络编程,请帮忙分析具体要用到的技术和提供例子思路啊 如何在vs2005里找到: Global.asax.cs SaveAsAscii用法问题 求助!昨天还行今天就不行了! 關于發消息的問題 (熟悉消息處理的高手請進) (sgip)接收上行和状态报告,是连一次联通网关,接收一次;还是就一直连着呢? 大家看一下实现这个效果要怎么做 【结婚的,有女朋友的进】《男人必读》之如何打老婆 .net framework 1.1 与 .net framework 2.0冲突吗? 使用XmlTextReader读取不规则Xml问题,或修改Stream 【其实是爱情帖】从月薪3500到700万 一个奇怪的问题? 如何在vs2005里找到: Global.asax.cs 学习JAVA,无偿提供超过JAVA资料,JAVA软件FTP下载. 请教个c++primer上的问题 50分。。。 请问如何在服务器端自动执行某个.aspx页面? 为了Ajax散分!达到十个人就结贴! 头痛,任意添加文本框,一下午也没解决,请高手近来帮下忙 考考大家? java连接数据库的问题请指教 使用数据库的网络编程,请帮忙分析具体要用到的技术和提供例子思路啊 请问如何判断手机用户来自梦网还是通过输入网址登录的?急