注册 登录
编程论坛 ASP技术论坛

asp 访问有权限的文件夹可以吗?

chg 发布于 2008-06-26 09:50, 855 次点击
我不想让别人盗链接下载自己网站上的文件.我在放下载的文件的文件夹上设置了权限,想问可以用ASP访问吗
7 回复
#2
chg2008-06-27 14:04
怎么没人回呀
#3
yms1232008-06-27 14:24
ASP好像不能访问设有读写权限的文件夹
#4
multiple19022008-06-27 22:32
可以不公开文件真实路径,用asp的redirect。
当然了,这样还不够。可以用asp里读取文件内容再BinaryWrite出来,但比较费资源。
#5
chg2008-06-28 16:53
不公开真实路径...用了迅雷之类的软件不就出来了吗?
#6
anlige2008-06-29 01:25
<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>
<!--#include file="mdb.asp"-->
<!--#include file="inc/WFile.asp"-->
<%
fileid=request.querystring("id")
'防盗链
if session(fileid)<>"canload" then 'session是通过点击下载连接产生的,点击才会产生这个session
response.write "请勿盗链本站内容!!!!<br>"&vbcrlf
response.write "请从<a href=""http://www.列表首页</a>下载本文件;<br>"&vbcrlf
response.write "若找不到文件,请使用搜索功能;<br>"&vbcrlf
response.write "非常感谢您的访问。"&vbcrlf
response.end
end if

Dim Stream
Dim Contents
Dim FileName
Dim FileExt
Const adTypeBinary = 1
'下面代码从数据库提取文件信息
sql="select Title,FileUrl from Files WHERE id="&fileid
set rs=server.createobject("adodb.recordset")
rs.open sql,conn,1,1
FileName=rs(1)
fileexc=mid(FileName,instrrev(FileName,"."))
name=rs(0)&fileexc
tit=rs("Title")
rs.close
set rs=nothing
'提取文件信息结束
' 下载这个文件
Response.Clear
Response.ContentType = "application/octet-stream"
Response.AddHeader "content-disposition", "attachment; filename="&name
Set Stream = server.CreateObject("ADODB.Stream")
Stream.Type = adTypeBinary
Stream.Open
Stream.LoadFromFile Server.MapPath(FileName)
While Not Stream.EOS
Response.BinaryWrite Stream.Read(1024 * 64)
Wend
Stream.Close
Set Stream = Nothing
'下面仅仅是统计代码
m_msg="→ 来自<font color=red>"&request.servervariables("REMOTE_ADDR")&"</font>的访客在<font color=red>"&now()&"</font>下载了<font color=red>"&tit&"</font><br />"
call writeF(server.mappath("logs.asp"),m_msg) '下载记录写入文件
if arii<>"yes" then
response.cookies("user")(fileid)="yes"
response.Cookies("user").Expires=DateAdd("d", 1, now())
sql="update Files Set Download=Download+1 where id="&fileid
conn.execute sql
end if
'统计结束
conn.close
set conn=nothing
Response.Flush
Response.End
%>
#7
multiple19022008-06-29 08:58
嗯,楼上的这个思路非常好,但是注意运行起来是非常占资源的,所以大型网站嘛……最好是用类似isapi的技术防盗链,还有一段时间改文件名
#8
chg2008-06-30 08:33
假如知道了你的文件名和存放路径是不是可以绕过下载页直接下载了
1