设为首页收藏本站

新微赢技术网

 找回密码
 注册
搜索
热搜: 回贴
查看: 67|回复: 6
打印 上一主题 下一主题

[求助]关于下载过大文件出错一问

[复制链接]
跳转到指定楼层
1#
发表于 2010-1-7 00:02:24 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
为了防止盗链、有效控制下载权限和隐藏下载路径,我在网上搜到了下面的代码(已经精简):
下载界面页:
<%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
2#
发表于 2010-1-7 00:02:27 | 只看该作者
文件放在服务器上upload文件夹下
没有涉及到数据库
回复 支持 反对

使用道具 举报

3#
发表于 2010-1-7 00:02:30 | 只看该作者
加了也不行,我刚试过了
回复 支持 反对

使用道具 举报

4#
发表于 2010-1-7 00:02:33 | 只看该作者
没有加On Error Resume Next语句吧?
回复 支持 反对

使用道具 举报

5#
发表于 2010-1-7 00:02:36 | 只看该作者
楼主文件存在哪里?数据库,还是服务器上?
回复 支持 反对

使用道具 举报

6#
发表于 2010-1-7 22:05:02 | 只看该作者
我来自火星刚到地球什么都不懂
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

申请友链|小黑屋|最新主题|手机版|新微赢技术网 ( 苏ICP备08020429号 )  

GMT+8, 2024-11-18 02:36 , Processed in 0.125702 second(s), 9 queries , Gzip On, Memcache On.

Powered by xuexi

© 2001-2013 HaiAn.Com.Cn Inc. 寰耽

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