自己写的一个JSP下载文件的类。 package com.cdms.file; import java.io.File; import java.io.FileInputStream; import java.net.URLEncoder; import javax.servlet.ServletOutputStream; import javax.servlet.http.HttpServletResponse; import javax.servlet.jsp.JspWriter; import javax.servlet.jsp.PageContext; public class DownloadFile { /** * 下载文件 * * @param response * @param out * @param pageContext * @param sourceFile 下载的源文件 * @param purposeFile 下载到用户PC的文件 * @return */ public boolean downloadFiles(HttpServletResponse response, JspWriter out, PageContext pageContext, String sourceFile, String purposeFile) { try { response.reset(); response.setContentType("application/x-download"); purposeFile = URLEncoder.encode(purposeFile, "UTF-8"); response.addHeader("Content-Disposition", "attachment;filename=" + purposeFile); ServletOutputStream writer = response.getOutputStream(); FileInputStream reader = new FileInputStream(new File(sourceFile)); int size = 0; byte[] buff = new byte[1024 << 10]; while ((size = reader.read(buff, 0, buff.length)) != -1) { writer.write(buff, 0, size); } reader.close(); writer.flush(); writer.close(); out.clear(); out = pageContext.pushBody(); } catch (Exception e) { e.printStackTrace(); return false; } return true; } }