该例基于Nutz框架
前台代码:
<a href="" id="errordownload" onclick="downloadErrorLogsFile()"></a>
function downloadErrorLogsFile()
{$("errordownload").attr("href","${base}/platform/sys/user/downloaErrorLogsFile?filename="+filename);}
后台Controler层:
/** * 下载模版或其他文件等, */ @At @Ok("void") public class Download { //下载模版工具类 public void downloadFile(@Param(fileName)String fileName,HttpServletRequest request,HttpServletResponse response) throws Exception {
response.setContentType("text/html;charset=UTF-8");
BufferedInputStream in = null;
BufferedOutputStream out = null; request.setCharacterEncoding("UTF-8"); String rootpath = request.getSession().getServletContext().getRealPath("/"); try { File f = new File(rootpath + "uploadFile/" + fileName); response.setContentType("application/x-excel"); response.setCharacterEncoding("UTF-8"); response.setHeader("Content-Disposition", "attachment; filename="+new String(fileName.getBytes("gbk"),"iso-8859-1")); response.setHeader("Content-Length",String.valueOf(f.length())); in = new BufferedInputStream(new FileInputStream(f)); out = new BufferedOutputStream(response.getOutputStream()); byte[] data = new byte[1024]; int len = 0; while (-1 != (len=in.read(data, 0, data.length))) { out.write(data, 0, len); } } catch (Exception e) { e.printStackTrace(); } finally { if (in != null) { in.close(); } if (out != null) { out.close(); } } } }