使用ADODB.Stream下载文件的问题

kamengwang 2008-08-25 10:55:59
......
Response.CharSet = "UTF-8"
Response.ContentType = "application/octet-stream"
Response.BinaryWrite Objstream.Read '向HTTP输出写入二进制信息
Response.Flush '将缓冲信息发送给浏览器

Objstream.Close
Set Objstream = Nothing

上面方法好象不正常下载.下载下来的东西都是0kb,但是下载对话框里显示的是正常文件大小

Response.CharSet = "UTF-8"
Response.ContentType = "application/octet-stream"
do while true
Response.BinaryWrite s.Read(1 * 1024 * 1024)
Response.Flush
if s.EOS then
exit do
end if
loop

这个方法到是可以,请问这是为什么呢?还有就是我想让它支持断点续传,找了N多例子也不行


请问如何才能支持断点续传???
...全文
284 23 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
23 条回复
切换为时间正序
请发表友善的回复…
发表回复
wtogether 2008-08-26
  • 打赏
  • 举报
回复
错了,是这个,要加复数
Response.AddHeader "Accept-Ranges", "bytes"
wtogether 2008-08-26
  • 打赏
  • 举报
回复
加个HTTP头
Response.AddHeader "Accept-Range", "bytes"
然后再用4楼的代码
winebottle 2008-08-25
  • 打赏
  • 举报
回复
Public Function Down(ServerFileName,DownFileName)
On Error Resume Next
Set Stream=Server.CreateObject("Adodb.Stream")
Stream.mode=3
Stream.type=1
Stream.open()

Stream.loadfromfile(Server.Mappath(ServerFileName))
If Err.Number>0 Then
Response.Status="404"
Down = False
Else
Response.ContentType="application/octet-stream"
Response.AddHeader "Content-Disposition:","attachment;filename="&DownFileName
Range=Mid(Request.ServerVariables("HTTP_RANGE"),7)
If Range="" Then
Response.BinaryWrite(Stream.Read)
Else
Stream.position=Clng(split(Range,"-")(0))
Response.BinaryWrite(Stream.Read)
End If
Down = True
End IF
Response.End
set Stream = nothing
End Function
kamengwang 2008-08-25
  • 打赏
  • 举报
回复
但是我看说明文档说第一种是 一次性读去全部啊.

如何支持断点续传呢?

我的不是一般下载,需要判断用户权限的.而且路径保密.
taia 2008-08-25
  • 打赏
  • 举报
回复
第一段程序 的Objstream.Read只是读取一个字节,没有把文件都读完,所以有问题
第二段程序有个循环,会一直读到文件尾

其实,如果是一般的下载,直接将连接指向目的文件就可以了,不用费时间写STREAM来下载的
kamengwang 2008-08-25
  • 打赏
  • 举报
回复
顶起啊...
Anlige 2008-08-25
  • 打赏
  • 举报
回复
kamengwang 2008-08-25
  • 打赏
  • 举报
回复
继续顶起...
kamengwang 2008-08-25
  • 打赏
  • 举报
回复
这个问题没有人试过吗?真郁闷.
hezhenyun 2008-08-25
  • 打赏
  • 举报
回复
ding
kamengwang 2008-08-25
  • 打赏
  • 举报
回复
本地xp通过,服务器2003不通过,难道是配置有问题?谁知道怎么设置?...

知道什么原因吗???
kamengwang 2008-08-25
  • 打赏
  • 举报
回复
本地xp通过,服务器2003不通过...

知道什么原因吗???
winebottle 2008-08-25
  • 打赏
  • 举报
回复
代码本机测试过
你用胡时候报什么错啊
kamengwang 2008-08-25
  • 打赏
  • 举报
回复
dingqia .........
kamengwang 2008-08-25
  • 打赏
  • 举报
回复
估计够呛,还是告诉我如何利用Adodb.Stream这个做吧,谁知道回个话啊...
tvruuiqpl1314520 2008-08-25
  • 打赏
  • 举报
回复
IIS下不是有个FTP协议的吗?装好后建个目录不就行了(FTP不是说的第三方软件,用微软自带的)
kamengwang 2008-08-25
  • 打赏
  • 举报
回复
ding..............
kamengwang 2008-08-25
  • 打赏
  • 举报
回复
在说用ftp你怎么让用户直接下载?要是他们不会用工具你还得一个一个教他们?
kamengwang 2008-08-25
  • 打赏
  • 举报
回复
用迅雷之类的下载软件不就可以随便传播地址了吗.你有更好的办法?我要的是可以分权限下载的,你有这个权限才能下载,没有权限不能下载.
tvruuiqpl1314520 2008-08-25
  • 打赏
  • 举报
回复
你就不能把文件的路径加密了放到数据库吗?
加载更多回复(3)

28,409

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧