| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 5138 人关注过本帖
标题:急急急急急急!如何在浏览器里不直接打开EXCEL,而是提示保存?
只看楼主 加入收藏
滚水六脚
Rank: 1
等 级:新手上路
帖 子:132
专家分:0
注 册:2004-8-16
收藏
 问题点数:0 回复次数:10 
急急急急急急!如何在浏览器里不直接打开EXCEL,而是提示保存?
一般,如果对于一个服务器端的EXCEL文件,当在浏览器里打开对应连接时,默认是直接在IE里调用EXCEL打开,而我想直接提示另存为,各位大侠,有和高招??? Thanks!
搜索更多相关主题的帖子: 浏览器 EXCEL 服务器 提示 保存 
2005-05-28 09:52
盖茨他爹
Rank: 6Rank: 6
等 级:贵宾
威 望:28
帖 子:5255
专家分:0
注 册:2005-5-3
收藏
得分:0 
这样不太好吧,如果客户端没装EXCEL就麻烦了
2005-05-28 10:41
griefforyou
Rank: 6Rank: 6
等 级:贵宾
威 望:27
帖 子:3336
专家分:0
注 册:2004-4-15
收藏
得分:0 
不能用Response.Redirect 或用链接直接指向.xls文件。
可以通过ADO.Stream对象读出文件,然后发送给浏览器时设置MIME类型为二进制流格式,最后用Response.BinaryWrite输出。

天津网站建设 http://www./
2005-05-28 12:04
griefforyou
Rank: 6Rank: 6
等 级:贵宾
威 望:27
帖 子:3336
专家分:0
注 册:2004-4-15
收藏
得分:0 

<% strFileName="test.xsl" strFilePath="c:\inetpub\wwwroot\test.xsl" strFileSize=n '获取文件长度 Set objStream = Server.CreateObject("ADODB.Stream") '创建流对象 objStream.Open objStream.Type = adTypeBinary objStream.LoadFromFile strFilePath '装载要下载的文件 Response.AddHeader "Content-Disposition", "attachment; filename=" & strFileName '设置文件名 Response.AddHeader "Content-Length", strFileSize '设置文件长度 ' In a Perfect World, Your Client would also have UTF-8 as the default ' In Their Browser Response.Charset = "UTF-8" '设置编码类型 Response.ContentType = "application/octet-stream" '设置MIME类型 Response.BinaryWrite objStream.Read '输出到浏览器 Response.Flush

objStream.Close Set objStream = Nothing %> 此方法可以用来下载任何类型的文件。

[此贴子已经被作者于2005-5-28 12:14:38编辑过]


天津网站建设 http://www./
2005-05-28 12:10
regedit
Rank: 5Rank: 5
等 级:贵宾
威 望:19
帖 子:950
专家分:0
注 册:2004-6-8
收藏
得分:0 
我试过啦,楼上的代码对于楼主的问题毫无帮忙
对我也没有帮忙,并没有实现下载Excel文件,结果还是用IE打开啦

最新作品:百货品牌商品资讯第一门户([url]http://www./[/url]),欢迎交流
2005-05-28 15:18
hxfly
Rank: 5Rank: 5
等 级:贵宾
威 望:17
帖 子:5810
专家分:118
注 册:2005-4-7
收藏
得分:0 
把文件变成压缩包
呵呵

2005-05-28 15:21
滚水六脚
Rank: 1
等 级:新手上路
帖 子:132
专家分:0
注 册:2004-8-16
收藏
得分:0 

Thanks,griefforyou ! 搞定,代码是: <% Dim strFilePathConst adTypeBinary = 1 strFilePath = "text/test.xls" Set objStream = Server.CreateObject("ADODB.Stream") objStream.Open objStream.Type = adTypeBinary objStream.LoadFromFile Server.MapPath(strFilePath) 'change the path if necessary Response.ContentType = "application/octet-stream" Response.AddHeader "Content-Disposition", "attachment; filename=留言--"&date()&".xls" '如果文件名固定,那就直接filename=文件名.doc,这个名字就是用户选“保存”时,出现的名字 Response.BinaryWrite objStream.Read Response.Flush objStream.Close Set objStream = Nothing '写完,释放对象 %> 请问把文件夹打包成压缩包怎么写?

我想连网站的图片也可以打包下载~!!

[此贴子已经被作者于2005-5-28 15:53:33编辑过]

2005-05-28 15:41
griefforyou
Rank: 6Rank: 6
等 级:贵宾
威 望:27
帖 子:3336
专家分:0
注 册:2004-4-15
收藏
得分:0 
以下是引用regedit在2005-5-28 15:18:12的发言: 我试过啦,楼上的代码对于楼主的问题毫无帮忙 对我也没有帮忙,并没有实现下载Excel文件,结果还是用IE打开啦
楼主,是这样吗?

天津网站建设 http://www./
2005-06-05 20:03
yilinjun
Rank: 1
等 级:新手上路
帖 子:232
专家分:0
注 册:2005-6-5
收藏
得分:0 
直接把扩展名改了不就OK


比如改成 *.exc

下载后改回来就OK了撒!!

2005-06-05 20:32
chocobo
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2005-9-9
收藏
得分:0 
这个是和客户端的设置有关的,如果客户端的系统中文件夹选项中的该文件类型的那个“下载后确认打开”的前面的勾如果打上就提示下载,否则直接调用相关程序打开~~
2005-12-22 09:42
快速回复:急急急急急急!如何在浏览器里不直接打开EXCEL,而是提示保存?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017528 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved