下载文件时,选择“打开”,则提示错误

imasmallbird 2008-04-22 07:08:02
在客户端下载一个EXCEL文件时,弹出一个下载对话框
其中“保存”与“取消”按钮都 可以用,而当点击“打开”时
可以进入office EXCEL
却提示:“无法找到"C:\..\.."(一个路径),请检查文件名的拼写,并检查文件的位置是否正确”的消息框

当选择“打开”时,先从服务器上下一个临时文件到本地,然后再打开,那么这个临时文件的存放路径是不是需要指定??

下面是设置的代码:

response.setContentType("application/vnd.ms-excel");
response.addHeader("Content-Disposition", "attachment; filename=" + fileName);


fileName用包括路径吗??
...全文
140 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
老紫竹 2008-04-23
  • 打赏
  • 举报
回复
在一个temp文件夹下,而且名字机器古怪!其实你何必管它呢!呵呵!

你可以在Excel里面另存为,就看到了!

imasmallbird 2008-04-23
  • 打赏
  • 举报
回复
还有一个问题:

当选择“打开”时,先从服务器上下一个临时文件到本地,然后再打开,那么这个临时文件,存在那呢??

为什么我打开以后,整个客户端的硬盘搜索,都找不到呀,难道这个临时文件还在服务器上??
yuanjun_xf 2008-04-23
  • 打赏
  • 举报
回复
顶下
老紫竹 2008-04-23
  • 打赏
  • 举报
回复
哇!我去测试!非常感谢5楼!
panxuan 2008-04-23
  • 打赏
  • 举报
回复
看了。
imasmallbird 2008-04-23
  • 打赏
  • 举报
回复
谢谢各位,问题已经解决!!


response.setContentType("application/vnd.ms-excel");
String fileBar = System.getProperty("file.separator");
response.addHeader("Content-Disposition","attachment; filename=" + fileBar + fileName);

加上系统的文件分隔符就可以了


[Quote=引用 2 楼 java2000_net 的回复:]
这问题我没解决,每次必须另存为,然后打开才可以!
[/Quote]
希望对二楼有所帮助!!
imasmallbird 2008-04-23
  • 打赏
  • 举报
回复
我在家里用两台电脑测试,一台当服务器,另一台就可以弹出对话框时点击“打开”,从而打开EXCEL文件!!
一样的程序,为什么有时可以,而有时不可以??
难道公司的服务器有某种权限??
KKK2007 2008-04-22
  • 打赏
  • 举报
回复
程序调试通过
filename不包括路径
<%@ page language="java" import="java.util.*,java.io.*" pageEncoding="ISO-8859-1"%>
<%
response.setContentType("application/vnd.ms-excel");
response.setHeader("Location","myexcel.xls");
response.setHeader("Cache-Control","max-age=" + 1000);
response.setHeader("Content-Disposition","attachment; filename=" + "myexcel.xls");
File ex=new File("E:\\myexcel.xls");
int len=(int)ex.length();
response.setContentLength(len);
OutputStream outputStream = response.getOutputStream();
InputStream inputStream = new FileInputStream("E:\\myexcel.xls");
byte[] buffer = new byte[1024];
int i = -1;
while ((i = inputStream.read(buffer)) != -1) {
outputStream.write(buffer, 0, i);
}
outputStream.flush();
outputStream.close();
inputStream.close();
outputStream = null;
%>
老紫竹 2008-04-22
  • 打赏
  • 举报
回复
这问题我没解决,每次必须另存为,然后打开才可以!
KKK2007 2008-04-22
  • 打赏
  • 举报
回复
是不是少了什么参数设置

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧