CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
IBM Rational 系统开发最佳实践工具包 WebSphere MQ 最佳实践 TOP 15
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Web 开发 >  ASP

asp下载问题:怎样把服务器端的TXT文档下载,并不在IE中打开!

楼主syx2006(悟空)2006-03-15 11:43:38 在 Web 开发 / ASP 提问

我现在有段程序要求把一些数据写入到一个TXT文件中,并且即时下载。  
   
  但是我如果把地址直接链接到文件名就会在IE中打开,看了一些下载源码觉得太复杂,各位朋友  
  能不能给些的思路!  
   
  虚心请教,感谢大伙! 问题点数:100、回复次数:5Top

1 楼KimSoft(革命的小酒天天醉-http://blog.csdn.net/kimsoft/)回复于 2006-03-15 11:45:31 得分 0

用stream方式读取txt,让浏览器强制下载Top

2 楼KimSoft(革命的小酒天天醉-http://blog.csdn.net/kimsoft/)回复于 2006-03-15 11:49:44 得分 50

<%  
  '蚍蜉中文站提供本程序http://www.pifoo.com  
  '程序编写飞云(Jspadmin)  
  '你可以自由引用或转载,但请保留此信息或连接  
  '本程序的作用是直接下载文件而不是在IE中打开,如htm、txt、asp、jpg文件等  
  function   download(f,n)  
  'f文件全路径,n下载文件的文件名  
      on   error   resume   next  
      Set   S=CreateObject("Adodb.Stream")  
      S.Mode=3  
      S.Type=1  
      S.Open  
      S.LoadFromFile(f)  
      if   Err.Number>0   then  
            Reaponse.status="404"  
      else  
            Response.ContentType="application/octet-stream"  
            Response.AddHeader   "Content-Disposition:","Attachment;filename="&n  
            Range=Mid(Request.ServerVariables("HTTP_RANGE"),7)  
            if   Range=""   then  
                  Response.BinaryWrite(S.Read)  
            else  
                  S.Postion=Clng(Split(Range,"-")(0))  
                  Response.BinaryWrite(S.Read)  
            end   if  
        end   if  
        Response.end  
    end   function  
   
  dim   filename  
  'filename="index.htm"  
  filename="1.xls"   '设置文件名在这里,你可以写上绝对路径。如果用了绝对路径,下面就不要再用mappath了  
  call   download(server.MapPath(filename),filename)  
    %>  
  Top

3 楼iuhxq(小灰)回复于 2006-03-15 12:05:36 得分 0

用stream方式读取txt,让浏览器强制下载  
   
   
  搜索一下,代码好多的。拿过来了用就行了Top

4 楼znjgress(四空和尚)回复于 2006-03-15 13:09:32 得分 50

 
  <%  
  Dim   Stream  
  Dim   Contents  
  Dim   FileName  
  Dim   FileExt  
  Const   adTypeBinary   =   1  
  FileName   =   Request.QueryString("FileName")  
  if   FileName   =   ""   Then  
          Response.Write   "无效文件名."  
          Response.End  
  End   if  
  '   下面是不希望下载的文件  
  FileExt   =   Mid(FileName,   InStrRev(FileName,   ".")   +   1)  
  Select   Case   UCase(FileExt)  
          Case   "ASP",   "ASA",   "ASPX",   "ASAX",   "MDB"  
                  Response.Write   "受保护文件,不能下载."  
                  Response.End  
  End   Select  
  '   下载这个文件  
  Response.Clear  
  Response.ContentType   =   "application/octet-stream"  
  Response.AddHeader   "content-disposition",   "attachment;   filename="   &   FileName  
  Set   Stream   =   server.CreateObject("ADODB.Stream")  
  Stream.Type   =   adTypeBinary  
  Stream.Open  
  Stream.LoadFromFile   Server.MapPath(FileName)  
  While   Not   Stream.EOS  
          Response.BinaryWrite   Stream.Read(1024   *   64)  
  Wend  
  Stream.Close  
  Set   Stream   =   Nothing  
  Response.Flush  
  Response.End  
  %>  
  Top

5 楼syx2006(悟空)回复于 2006-03-15 15:04:14 得分 0

非常感谢楼上两为朋友帮助!Top

相关问题

  • asp下载问题?
  • asp下载问题?
  • IE不能下载?
  • 哪有asp组件下载?
  • 如何下载ASP文件?
  • 用ASP如何实现直接下载,不用IE浏览器打开?
  • 如何下载.txt或.doc文件,而不让它在IE中自动打开??
  • TXT文件的下载
  • IE无法下载ActiveX控
  • 我要下载*.txt文件,怎样才能出现下载对话框,而不是在IE里面直接打开*.txt文件

关键词

  • 下载
  • txt
  • filename
  • range
  • stream
  • response

得分解答快速导航

  • 帖主:syx2006
  • KimSoft
  • znjgress

相关链接

  • Web开发类图书

广告也精彩

反馈

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