public ActionForward outputBlob(ActionMapping mapping, ActionForm form, HttpServletRequest request,
HttpServletResponse response) { DynaBean dynaform = (DynaBean) form;
Long attid = Long.valueOf((String) dynaform.get("attid"));
DcProjectatt dcProjectatt = dcProjectattMag.getObjectById(attid);
String attcontent = dcProjectatt.getAttpath();
try {
File file = new File(attcontent);
InputStream is = new FileInputStream("D:\\tomcat\\webapps\\ccms\\u\\cms\\www\\201206\\041559429329.xlsx");
@SuppressWarnings("unused")
int length = 0;
byte[] buf = new byte[1024];
while ((length = is.read(buf)) != -1) {
response.getOutputStream().write(buf);
}
is.close();
} catch (Exception e) {
e.printStackTrace();
} return null;
}
<td align="left">
<a href="${ctx}/zxsb/dcProjectatt.do?method=outputBlob&attid=${dcProjectatt.attid}" target="_blank"><c:out
value="${dcProjectatt.attname}" />
</a>
</td>页面点击下载的时候为什么默认文件的后缀名是.zip 压缩的形式啊?
解决方案 »
- 小强初出江湖,在外面混了两年落脚都这里了
- bat文件 启动java程序
- ejb新手问题求助。
- 本人是超级菜鸟,刚刚学完J2SE,想学J2EE有啥好建议?
- hibernate2升级到hibernate3的问题
- 如何用Web Service将数据添加到MySQL数据库中???
- 用JAVA开发的将文件保存到数据库,出现某些格式的文件不能保存,如 RAR,EXCEL 文件,但是将文件后缀修改,则可以正常提交?
- jasperreports問題
- jsp调用web服务的简单错误
- JTABLE问题?
- 如何用最简单的java程序获得 3个 可用的端口?
- 如果当前工程的junit测试很多很久,平时需要经常跑。如何最简单的最快的找出可能失败的.java?
response.addHeader("Content-Disposition", "attachment;filename=" + "041559429329.xlsx");
response.addHeader("Content-Length", "" + file.length());
response.setContentType("application/octet-stream");
int length = 0;
byte[] buf = new byte[1024];
while ((length = is.read(buf)) != -1) {
response.getOutputStream().write(buf);
}先按3楼的试试看,如果问题依旧,请楼主的代码改成int length = 0;
byte[] buf = new byte[1024];
while ((length = is.read(buf)) != -1) {
response.getOutputStream().write(buf, 0, length);//指定写出的数组长度
}
试试