CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Web 开发 >  ASP

请问怎样才能用response.redirect("url")下载不在虚拟目录下的文件?

楼主hcz10(方肖.net)2003-06-01 00:30:29 在 Web 开发 / ASP 提问

因为我的虚拟目录在D:  
  而文件在E:  
  但是E:上不准建立虚拟目录.  
  请问有没有办法呀? 问题点数:0、回复次数:3Top

1 楼net_lover(【孟子E章】)回复于 2003-06-01 00:34:57 得分 0

用Ado.Stream对象Top

2 楼net_lover(【孟子E章】)回复于 2003-06-01 00:35:31 得分 0

<%  
  '***********************************************  
  ' 强制下载已知类型的文件  
  '***********************************************  
  Const   ForReading=1  
  Const   TristateTrue=-1   'Unicode  
  Const   FILE_TRANSFER_SIZE=16384   '16k  
   
  'Use   the   following   line   for   IIS4/PWS   -   this   is   the   default   for   IIS5  
  Response.Buffer   =   True  
   
  Function   TransferFile(path,   mimeType,   filename)  
  Dim   objFileSystem,   objFile,   objStream  
  Dim   char  
  Dim   sent  
  send=0  
  TransferFile   =   True  
   
  Set   objFileSystem   =   Server.CreateObject("Scripting.FileSystemObject")  
  Set   objFile   =   objFileSystem.GetFile(Path)  
  Set   objStream   =   objFile.OpenAsTextStream(ForReading,   TristateTrue)  
   
  Response.AddHeader   "content-type",   mimeType  
  response.AddHeader   "Content-Disposition","attachment;filename="&filename  
  Response.AddHeader   "content-length",   objFile.Size  
   
  Do   While   Not   objStream.AtEndOfStream  
          char   =   objStream.Read(1)  
          Response.BinaryWrite(char)  
          sent   =   sent   +   1  
          If   (sent   MOD   FILE_TRANSFER_SIZE)   =   0   Then  
                  Response.Flush  
                  If   Not   Response.IsClientConnected   Then  
                          TransferFile   =   False  
                          Exit   Do  
                  End   If  
          End   If  
  Loop  
   
  Response.Flush  
  If   Not   Response.IsClientConnected   Then   TransferFile   =   False  
   
  objStream.Close  
  Set   objStream   =   Nothing  
  Set   objFileSystem   =   Nothing  
  End   Function  
   
  Dim   path,   mimeType,   sucess  
  'Server.MapPath(path)  
  path   =   "C:\mm.htm"  
  mimeType   =   "application/x-msdownload"  
  sucess   =   TransferFile(path,   mimeType,"cdd.doc")  
  Response.End  
  %>  
  Top

3 楼hcz10(方肖.net)回复于 2003-06-01 21:17:03 得分 0

以上的方法我已经试过了,可以是可以,但是下载虚拟目录以外的文件的速度实在太慢了,而虚拟目录内的文件却很快.  
   
  不知道为什么?Top

相关问题

  • 虚拟url怎么实现的?
  • 如何隐藏真实的url地址(虚拟主机)
  • 一个项目中在多个目录下虚拟目录URL的问题
  • 虚拟机
  • 虚拟光驱
  • 虚拟主存
  • 虚拟内存????
  • 虚拟打印
  • 虚拟拨号
  • java虚拟机

关键词

  • 虚拟
  • 文件
  • 下载
  • 虚拟目录
  • 请问

得分解答快速导航

  • 帖主:hcz10

相关链接

  • Web开发类图书

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo