@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); } } } }