|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
由于ASP提供的是一对多的服务,所以用户的一些特殊需求很难得到满足。stream|下载在扫瞄器的地点栏里间接输出一个doc或xls或jpg的文件的url路径,那末该文件会间接显现在扫瞄器里。而在良多时分我们但愿能间接弹出下载提醒框让用户下载,我们该怎样办呢?这里有两种办法:
1、设置你的服务器的iis,给doc等后缀名做映照
2、在向客户端发送时设置其contenttype
上面具体申明办法2
<%
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
%>
将上面的器材存成download.asp然后你就能够用<aherf="http://xxx.xxx.com/download.asp?n=file.doc">download!</a>来下载统一目次下的file.doc了!
可是这里有个成绩就是间接将file.doc路径写在url里是不平安的,以是办理计划应当是将file.doc的路径存到数据库里,同过查找数据库后失掉路径
在这个程序的最后面假如加上一个判别:
ifinstr(Request.ServerVariables("HTTP_REFERER"),"http://你的域名")=0then
Response.End
endif
就可以够很好的避免他人的盗链了
</p>缺点:正版成本价格贵(盗版就不说了)、不够安全,大多数服务器用windows系统,没有linux安全 |
|