欢迎访问悦橙教程(wld5.com),关注java教程。悦橙教程  java问答|  每日更新
页面导航 : > > 文章正文

Java从网上下载文件的代码,java网上下载文件,DownLoadUtil

来源: javaer 分享于  点击 48584 次 点评:142

Java从网上下载文件的代码,java网上下载文件,DownLoadUtil


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;    }}
                                调用 DownLoadUtil.java;
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; }
相关栏目:

用户点评