为什么我用OpenAsTextStream+Response.BinaryWrite向客户端传的文件内容总与HTTP直接下载的同一文件内容不一致?
小弟初学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?
谢谢谢谢