为什么我用OpenAsTextStream+Response.BinaryWrite向客户端传的文件内容总与HTTP直接下载的同一文件内容不一致?

Dreamow 2005-11-12 07:21:18
小弟初学ASP,想做一个方便同学分享魔兽录像的程序,由于录像文件的扩展名是.W3G,我的虚拟主机似乎不允许下载,如果直接HTTP访问就回出现404错误,所以我想用一个ASP文件读取文件的所有内容然后发送到浏览器端,所用的代码是:
<%
Set FSO=GetFSO
Set F=FSO.GetFile(Server.MapPath(Path))
Set D=F.OpenAsTextStream(1,True)
*Data=D.Read(F.Size)
Response.Clear
Response.AddHeader "Content-Disposition", "attachment; filename=" & FileName
*Response.AddHeader "Content-Length", F.Size
Response.Charset = "UTF-8"
Response.ContentType="application/octet-stream"
Response.BinaryWrite Data
Response.Flush
Response.End
Response.Close
Set FSO = Nothing
Set F = Nothing
Set D = Nothing
%>
用这个程序下传的文件大小完全一致,内容似乎也差不多,但是我用UltraEdit比较发现文件损坏的离谱了……这是为什么?
还有,代码中打星号那句,我原来是用ReadAll的,但是发现那样传下来的文件用UltraEdit看中间有一大片“000000000”但后边又接上了一些象是文件内容的东西,这个是为什么?
我开始时用OpenAsTextStream打开文件合适吗?
Content-Length是否应该是F.Size?

谢谢谢谢
...全文
110 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
Dreamow 2005-11-12
  • 打赏
  • 举报
回复

问题解决了,换用ADODB.Stream就行了……但是下载时只能“保存”,要是“打开”就不行。
为什么TextStream不行呢?
Dreamow 2005-11-12
  • 打赏
  • 举报
回复
代码中include和Function省略了,而且执行时没有显示语法错误

28,406

社区成员

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

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