`

Spring文件下载

阅读更多
@Controller
public class MyController {

    /**
     * 
     * 从服务器上下载文件到本地 <br>
     * 〈功能详细描述〉
     * 
     * @param request
     * @param response
     * @see [相关类/方法](可选)
     * @since [产品/模块版本](可选)
     */
    @RequestMapping("/downLoadFile.action")
    public void downLoadFile(HttpServletRequest request, HttpServletResponse response) {
        String downLoadPath = request.getSession().getServletContext().getRealPath(File.separator)+ "/report" + "/template/waitToDelivery.xls";
        download(downLoadPath, "waitToDelivery.xls", response);
    }

    /**
     * 
     * 功能描述:下载文件
     * 
     * @param downLoadPath 下载路径
     * @param fileName 文件明
     * @param request HttpServletRequest
     * @param response HttpServletResponse
     * @see 需要参见的其它内容
     */
    public static void download(String downLoadPath, String fileName, HttpServletResponse response) {
        BufferedInputStream bis = null;
        BufferedOutputStream bos = null;
        try {
            long fileLength = new File(downLoadPath).length();
            response.setContentType("application/x-msdownload;");
            response.setHeader("Content-disposition", "attachment; filename="
                    + new String(fileName.getBytes("utf-8"), "ISO8859-1"));
            response.setHeader("Content-Length", String.valueOf(fileLength));

            bis = new BufferedInputStream(new FileInputStream(downLoadPath));
            bos = new BufferedOutputStream(response.getOutputStream());
            byte[] buff = new byte[2048];
            int bytesRead;
            while (-1 != (bytesRead = bis.read(buff, 0, buff.length))) {
                bos.write(buff, 0, bytesRead);
            }
            bos.flush();

        } catch (Exception e) {
            //
        } finally {
            if (bis != null) {
                IOUtils.closeQuietly(bis);
            }
            if (bos != null) {
                IOUtils.closeQuietly(bos);
            }
        }
    }
}
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics