CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Web 开发 >  ASP

我做一个文件下载系统,有各种格式的文件,现在要求 点击页面某个按钮,弹出IE自带的文件下载提示框,而不能让该文件在IE中打开,如何做

楼主enxi(恩熙 @_@)2005-04-02 18:16:31 在 Web 开发 / ASP 提问

比如有些图片,office文档,可以在IE中直接浏览的,现在要求它们不能在IE中直接浏览,而是弹出IE的文件下载提示框。各位大侠帮帮我! 问题点数:0、回复次数:19Top

1 楼huangleibo()回复于 2005-04-02 19:05:49 得分 0

URL="http://www.xxx.com/down/1.rm"  
   
  <button   onclick="window.open(URL);">Down</button>Top

2 楼zhutimy(慢刀手)回复于 2005-04-02 19:36:24 得分 0

还是要用header信息Top

3 楼enxi(恩熙 @_@)回复于 2005-04-03 13:58:42 得分 0

TO   huangleibo:  
  如果该文件是一个html或者asp类型的文件,那就直接运行了,而不是下载了。Top

4 楼songhp(宋海鹏)回复于 2005-04-05 01:41:31 得分 0

这样的需求需要使用将文件转换为Stream或者通过组件的方式才能实现.如下面的代码:  
  <%  
  function   downloadFile(strFile)  
  strFilename   =   strFile  
  Response.Buffer   =   True  
  Response.Clear  
  Set   s   =   Server.CreateObject("ADODB.Stream")  
  s.Open  
  s.Type   =   1  
  on   error   resume   next  
  Set   fso   =   Server.CreateObject("Scripting.FileSystemObject")  
  if   not   fso.FileExists(strFilename)   then  
  Response.Write("<h1>Error:</h1>"   &   strFilename   &   "   does   not   exist<p>")  
  Response.End  
  end   if  
  Set   f   =   fso.GetFile(strFilename)  
  intFilelength   =   f.size  
  s.LoadFromFile(strFilename)  
  if   err   then  
  Response.Write("<h1>Error:   </h1>"   &   err.Description   &   "<p>")  
  Response.End  
  end   if  
  Response.AddHeader   "Content-Disposition",   "attachment;   filename="   &   f.name  
  Response.AddHeader   "Content-Length",   intFilelength  
  Response.CharSet   =   "UTF-8"  
  Response.ContentType   =   "application/octet-stream"  
  Response.BinaryWrite   s.Read  
  Response.Flush  
  s.Close  
  Set   s   =   Nothing  
  End   Function  
  %>Top

5 楼satans18((何畏)(只要你过得比我好))回复于 2005-04-05 08:50:56 得分 0

使用文件流下载,给你代码:  
   
  '下面程序是将WORD文件以附件的形式下载下来  
   
   
  Dim   Stream  
  Dim   Contents  
  Dim   FileName  
  Dim   FileExt  
  Const   adTypeBinary   =   1  
   
  FileName   =   "word/文件名.doc"  
   
  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

6 楼enxi(恩熙 @_@)回复于 2005-04-05 16:36:00 得分 0

winXP+SP2下报错:当前安全设置下不允许下载该文件。Top

7 楼soli8(不是猪头三)回复于 2005-04-05 16:54:22 得分 0

一个最简单的办法 就是把文件打包成RAR/zip   文件就行Top

8 楼chzxq(毛毛鼠)回复于 2005-04-05 17:23:01 得分 0

使用文件流比较好用Top

9 楼enxi(恩熙 @_@)回复于 2005-04-05 18:07:02 得分 0

现在的情形是文件格式不定,文件大小不定,同时要确保文件不在IE中直接打开和浏览。有什么办法么Top

10 楼maoqai(一百分英雄)回复于 2005-04-05 18:43:35 得分 0

 
  http://www.haow168.com/plug-ins/ad/get.asp?get=3124  
       
   
  在这里有关于这个问题的详细解答.Top

11 楼winstarr(星仁)回复于 2005-04-05 19:58:49 得分 0

好Top

12 楼hhjjhjhj(大头)(http://office.9zp.com)回复于 2005-04-05 20:36:41 得分 0

IIS中设置MIME就行,(application/octet-stream)Top

13 楼enxi(恩熙 @_@)回复于 2005-04-05 20:41:39 得分 0

Tohhjjhjhj(大头)(想变胡萝卜^^):  
  提示错误:当前安全设置下不允许下载该文件Top

14 楼liuxiaoyi666(MSMVP 小猪妹荣誉马甲之八卦兔子)回复于 2005-04-05 21:12:07 得分 0

声明报头Top

15 楼TSD(智之选,商欲达--智商购物系统zhishop.com)回复于 2005-04-05 21:32:43 得分 0

用楼上所说的文件流方式来实现吧Top

16 楼net205(人不可以无耻到这种地步)回复于 2005-04-06 09:53:14 得分 0

提示错误:当前安全设置下不允许下载该文件  
  -----应该是sp2的问题,一些弹出窗口(多模窗口)它也禁止了,拿它没办法Top

17 楼lookatliu(独孤常败)回复于 2005-04-06 10:29:47 得分 0

前面加上类似于这个就可以  
  Response.ContentType   =   "application/csv"  
  Response.AddHeader   "Content-Disposition",   "application/octet-stream;filename   =   "   &   csv_name   &   ";"  
  Top

18 楼enxi(恩熙 @_@)回复于 2005-04-08 09:16:26 得分 0

我需要说明一下:  
  我的服务器采用win2003E  
  客户端浏览时用winXP+sp2+IE6.0.2900  
  采用各位的方法都不满意,在winXP+sp2+IE6.0.2900环境中测试  
  1.图片:点击后还是直接嵌在浏览器里打开(客户端为xp或2k时都如此)  
  2.视频文件等较为大的文件无法下载。  
   
  同时我还想问另外一个问题,在我机器上无法   右击链接-目标另存为,报错:当前安全设置下不允许下载该文件。但是在其它网站上下载文件时,我用同样的方法,却正常下载。  
  Top

19 楼iuhxq(小灰)回复于 2005-04-08 09:22:02 得分 0

最好是打包成rar  
   
   
  用stream也行。  
   
   
  Top

相关问题

  • 怎么在Java Applet中点击按钮弹出Ie窗口
  • 如何弹出IE使窗口titlebar中的最大化按钮失效?
  • 如何在IE工具栏里添加一个具有弹出式菜单的按钮?
  • 怎样将在IE的弹出菜单,工具条中加上自己的菜单项目和按钮?
  • 怎样将在IE的弹出菜单,工具条中加上自己的菜单项目和按钮?
  • 在PB7.0中如何实现单击按钮弹出IE浏览器并打开指定网址?谢谢!
  • IE中加按钮
  • 急问:怎样禁止页面右键弹出?怎样控制页面一打开便自动去除IE的菜单、按钮?
  • 点击IE浏览器的关闭按钮后,弹出一个确认框,如果选是,那么正常关闭,选择否,不关闭.如何实现
  • 在winxp的IE中点击某一超链文件(如格式为doc,ppt等)弹出的“文件下载”对话框的设定?

关键词

  • 文件
  • 下载
  • ie
  • 浏览
  • winxp
  • 安全
  • application
  • asp
  • 弹出
  • 提示

得分解答快速导航

  • 帖主:enxi

相关链接

  • Web开发类图书

广告也精彩

反馈

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