POI之下载模板(或各种文件)

该例基于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();  
            }  
        }  
      
    }
}
原文地址:https://www.cnblogs.com/Dreamice/p/7747547.html