DownLoadUtil.java
- import java.io.BufferedInputStream;
- import java.io.BufferedOutputStream;
- import java.io.File;
- import java.io.FileInputStream;
- import javax.servlet.http.HttpServletResponse;
- import org.apache.log4j.Logger;
- public class DownLoadUtil {
- private static Logger logger = Logger.getLogger(DownLoadUtil.class);
- /**
- * 下载文件
- * @param name 用户下载的文件名(*****.***)
- * @param filePath 文件路径
- * @param response
- * @param fileType 文件类型
- * @return
- * @throws Exception
- */
- public static boolean downLoadFile(String name,String filePath,
- HttpServletResponse response, String fileType)
- throws Exception {
- logger.info("start invoke downLoadFile,[filePath:"+filePath+" , fileType:"+fileType+"]");
- File file = new File(filePath);
- //设置文件类型
- if("pdf".equals(fileType)){
- response.setContentType("application/pdf");
- }else if("xls".equals(fileType)){
- response.setContentType("application/msexcel");
- }else if("doc".equals(fileType)){
- response.setContentType("application/msword");
- }
- response.setHeader("Content-Disposition", "attachment;filename=\""
- + new String(name.getBytes("GB2312"), "ISO8859-1") + "\"");
- //response.setHeader("Content-Disposition", "attachment;filename=\""+ URLEncoder.encode(name, "UTF-8")+ "\"");
- response.setContentLength((int) file.length());
- byte[] buffer = new byte[4096];// 缓冲区
- BufferedOutputStream output = null;
- BufferedInputStream input = null;
- try {
- output = new BufferedOutputStream(response.getOutputStream());
- input = new BufferedInputStream(new FileInputStream(file));
- int n = -1;
- while ((n = input.read(buffer, 0, 4096)) > -1) {
- output.write(buffer, 0, n);
- }
- output.flush();
- response.flushBuffer();
- } catch (Exception e) {
- logger.error("exception when invoke downLoadFile",e);
- throw e;
- } finally {
- if (input != null)
- input.close();
- if (output != null)
- output.close();
- }
- logger.info("end invoke downLoadFile!");
- return true;
- }
- }
- public ActionForward downLoadExcelModel(ActionMapping actionMapping,
- ActionForm actionForm, HttpServletRequest request,
- HttpServletResponse response) throws Exception {
- String busType = request.getParameter("busType");
- String path = request.getSession().getServletContext().getRealPath(
- "/resources");
- String name = null;
- String fileName = null; //服务器上文件名
- fileName = "xxxl.xls";
- name = "xxxx.xls";
- }
- String filePath = path + System.getProperty("file.separator") + fileName;
- DownLoadUtil.downLoadFile(name,filePath, response, "xls");
- return null;
- }
来源: http://www.phpxs.com/code/1002213/