struts配置:
<action name="newMatchUserList" class="cn.com.dcj.homepage.admin.newMatchMng.action.NewMatchUserListAction">
<result name="excel" type="stream">
<param name="contentType">application/octet-stream;</param>
<param name="inputName">excelStream</param>
<param name="contentDisposition">attachment;filename="test.xls"</param>
<param name="bufferSize">1024</param>
</result>
</action>现在问题是点击下载,IE浏览器,始终是在页面直接打开,而火狐则是正常弹出下载框下载。
红色字体部分貌似不起作用,即使红色部分改成inline,两种浏览器表现方式依然如上。
望有经验的前辈指教!
<action name="newMatchUserList" class="cn.com.dcj.homepage.admin.newMatchMng.action.NewMatchUserListAction">
<result name="excel" type="stream">
<param name="contentType">application/octet-stream;</param>
<param name="inputName">excelStream</param>
<param name="contentDisposition">attachment;filename="test.xls"</param>
<param name="bufferSize">1024</param>
</result>
</action>现在问题是点击下载,IE浏览器,始终是在页面直接打开,而火狐则是正常弹出下载框下载。
红色字体部分貌似不起作用,即使红色部分改成inline,两种浏览器表现方式依然如上。
望有经验的前辈指教!
解决方案 »
- memcache取出的数据完全乱了
- 一个java读写文件的效率问题
- java到底怎么学?
- 问一个关于编辑列表框的问题
- java如何通过socket发送16进制数据包
- jsp留言板页面老是报错 "success.jsp ": incompatible types; found : int, required: boolean
- 使用ibatis时,sql脚本中有中文的表名、字段名称的问题。
- 关于设置 jboss-3.2.0_tomcat-4.1.24 连接数的问题,迫切希望高手指点。
- 请问JB9如何集成tomcat5.0???
- tomcat奇怪的问题。。。。。请教。。。
- SpringMVC + JPA+hibernate tomcat 启动时报错
- struts+ibatis(项目类似于jpetstore)异常
在“文件夹选项→文件类型选项卡”中选中xls类型,然后点击旁边的高级按钮,然后选中“下载后确认打开”(如果已选中,先取消后再选中)
参照:
http://www.duote.com/tech/1/1278.html
我的实现方式是使用smartupload:
unload.jsp<%@ page contentType="text/html;charset=utf-8" import="org.lxh.smart.*"%>
<%
String fileName=request.getParameter("fileName");
String newFileName=request.getParameter("newFileName");
try{
//newFileName+=fileName.substring(fileName.lastIndexOf("."));
//newFileName = EncodingChange.toUtf8String(newFileName);
// 新建一个SmartUpload对象
SmartUpload su = new SmartUpload();
// 初始化
su.initialize(pageContext);
// 设定contentDisposition为null以禁止浏览器自动打开文件,
//保证点击链接后是下载文件。若不设定,则下载的文件扩展名为
//doc时,浏览器将自动用word打开它。扩展名为pdf时,
//浏览器将用acrobat打开。
su.setContentDisposition(null);
// 下载文件
//su.downloadFile("/archives/file/"+fileName);
su.downloadFile(pageContext.getSession().getServletContext().getRealPath("/")+"/clientlog/"+fileName,null,newFileName);
out.clear();
out=pageContext.pushBody();
}catch(Exception e){
e.printStackTrace();
out.println("<br>");
out.println("<br>");
out.println("<br>");
out.println("<font color=red size=3 align=\"center\">您下载的文件找不到!可能已经丢失,请与管理员联系</font>");
out.println("<a href=\"#\" onclick=\"history.go(-1)\">返回</a>");
}
%>
这里:页面需要接受2个参数:
String fileName=request.getParameter("fileName");
String newFileName=request.getParameter("newFileName");
因为通常情况下我们都是在数据库中为上传的文件生成一个唯一的代码,这个和上传的实际文件名不相同,在下载的时候传递给页面, newFileName 则是下载弹出框提示的另存为的文件名。
注意:pageContext.getSession().getServletContext().getRealPath("/")+"/clientlog/"+fileName 是下载的相对路径,根据你自己的项目设置。