我做一个文件下载系统,有各种格式的文件,现在要求 点击页面某个按钮,弹出IE自带的文件下载提示框,而不能让该文件在IE中打开,如何做
比如有些图片,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等)弹出的“文件下载”对话框的设定?




