标题:[求助]关于下载过大文件出错一问
只看楼主
peclhl
Rank: 1
等 级:新手上路
帖 子:24
专家分:0
注 册:2007-3-4
 问题点数:0 回复次数:4 
[求助]关于下载过大文件出错一问

为了防止盗链、有效控制下载权限和隐藏下载路径,我在网上搜到了下面的代码(已经精简):

下载界面页:
<%Response.Buffer = true%>
<HTML>
<HEAD>
</HEAD>
<%
Dim x
Response.Write "下载地址:<br><br>"
Randomize
x = int(rnd()*1000)
Response.Write "<a href='download.asp?id=" & 1*x & "'>文件名称.doc</a>"
'这里只是简单的运算,呵呵,这已经足够了。
Response.Cookies("secret") = x
%>
</BODY>
</HTML>


下载处理页面:
<%
Dim secret, id
Response.Buffer = true
if Request.cookies("secret") = "" then Response.End
if not Isnumeric(request.cookies("secret")) then Response.End
'这里对传递过来的值没有多加判断,只是为了节省篇幅
secret = clng(Request.Cookies("secret"))
id = clng(Request.QueryString("id"))
if id/secret = 1 then
Response.AddHeader "content-type","application/x-msdownload"
Response.AddHeader "Content-Disposition","attachment;filename=文件名称.doc"
Server.Transfer "upload/文件名称.doc"
else
Response.Write "Error!"
end if
%>

结果测试,当下载文件超过1M左右就没有反应了
xp2 IIS5.1 IE6

搜索更多相关主题的帖子: Response 文件 secret 
2007-03-04 23:23
yms123
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:209
帖 子:12488
专家分:19042
注 册:2004-7-17
得分:0 

楼主文件存在哪里?数据库,还是服务器上?

2007-03-05 09:28
peclhl
Rank: 1
等 级:新手上路
帖 子:24
专家分:0
注 册:2007-3-4
得分:0 
文件放在服务器上upload文件夹下
没有涉及到数据库

Myblog → 今生唯一 (情侣博客)
2007-03-05 10:03
yms123
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:209
帖 子:12488
专家分:19042
注 册:2004-7-17
得分:0 

没有加On Error Resume Next语句吧?

2007-03-05 10:14
peclhl
Rank: 1
等 级:新手上路
帖 子:24
专家分:0
注 册:2007-3-4
得分:0 
加了也不行,我刚试过了

Myblog → 今生唯一 (情侣博客)
2007-03-05 10:28



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-122525-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.022147 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved