@RequestMapping("/downloadxls.action") public void downloadxls(HttpServletRequest request, HttpServletResponse response) { //获取请求参数 Map<String, Object> params = ParamsUtil.getParams(request); String contextPath = request.getSession().getServletContext().getRealPath(File.separator + "report"); String excelName = xxxxx; String excelFullName = contextPath + File.separator + excelName + ".xls"; InputStream inStream = null, fileInStream = null; ServletOutputStream outStream = null; int byteRead; try { fileInStream = new FileInputStream(excelFullName); inStream = new BufferedInputStream(fileInStream); response.reset(); response.setContentType("APPLICATION/OCTET-STREAM"); response.setHeader("Content-disposition", "attachment; filename=" + excelName + ".xls"); outStream = response.getOutputStream(); byte[] buffer = new byte[1024]; while ((byteRead = inStream.read(buffer)) != -1) { outStream.write(buffer, 0, byteRead); } response.flushBuffer(); outStream.close(); inStream.close(); fileInStream.close(); } catch (Exception e) { LOGGER.error( e); }finally{ try { if(outStream!=null){ outStream.close(); } } catch (IOException e2) { LOGGER.error(e2); } try { if(inStream!=null){ inStream.close(); } } catch (IOException e2) { LOGGER.error(e2); } try { if(fileInStream!=null){ fileInStream.close(); } } catch (IOException e2) { LOGGER.error(e2); } } }