File file = new File(targetPdf);if (file.exists()) {OutputStream out = null;FileInputStream in = null;try {// 1.读取要下载的内容in = new FileInputStream(file);// 2. 告诉浏览器下载的方式以及一些设置// 解决文件名乱码问题,获取浏览器类型,转换对应文件名编码格式,IE要求文件名必须是utf-8, firefo要求是iso-8859-1编码String agent = request.getHeader("user-agent");if (agent.contains("FireFox")) {targetPdf = new String(targetPdf.getBytes("UTF-8"), "iso-8859-1");} else {targetPdf = URLEncoder.encode(targetPdf, "UTF-8");}// 设置下载文件的mineType,告诉浏览器下载文件类型String mineType = request.getServletContext().getMimeType(targetPdf);response.setContentType(mineType);// 设置一个响应头,无论是否被浏览器解析,都下载response.setHeader("Content-disposition", "attachment; filename=" + targetPdf);// 将要下载的文件内容通过输出流写到浏览器out = response.getOutputStream();int len = 0;byte[] buffer = new byte[1024];while ((len = in.read(buffer)) > 0) {out.write(buffer, 0, len);}} catch (IOException e) {e.printStackTrace();throw new BusinessException("下载审查Pdf文件异常");} finally {if (out != null) {out.close();}if (in != null) {in.close();}}}}