博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
HttpServletResponse实现文件下载
阅读量:6234 次
发布时间:2019-06-22

本文共 2132 字,大约阅读时间需要 7 分钟。

import java.io.BufferedInputStream;import java.io.BufferedOutputStream;import java.io.File;import java.io.FileInputStream;import java.io.IOException;import java.io.InputStream;import java.io.OutputStream;import java.net.URLEncoder;import javax.servlet.http.HttpServletResponse;import org.springframework.util.StringUtils;/** * 文件下载 */public class FileLoad {    /**     * 使用response返回文件流     */    public void loadFile(String filePath, HttpServletResponse response) {        // 声明工具类        BufferedInputStream in = null;        BufferedOutputStream out = null;        try {            // 若路径为空            if (StringUtils.isEmpty(filePath)) {                throw new Exception("invalid filepath of null.");            }            // 没找到文件            File file = new File(filePath);            if (!file.exists()) {                throw new Exception("file not exist in path [" + filePath + "]");            }            // 获取文件名            String fileName = file.getName();            // 输出文件流到浏览器            in = new BufferedInputStream(new FileInputStream(filePath));            out = new BufferedOutputStream(response.getOutputStream());            response.setContentType("application/x-download;charset=utf-8");            response.setHeader("Content-disposition", "attachment;filename=" + URLEncoder.encode(fileName, "UTF-8"));            byte[] buffer = new byte[8192];            int count = 0;            while ((count = in.read(buffer, 0, 8192)) != -1) {                out.write(buffer, 0, count);            }            out.flush();            file = null;        } catch (Exception e) {            e.printStackTrace();        } finally {            closeStream(in, out);        }    }    /**     * 关闭输入输出流     */    public void closeStream(InputStream in, OutputStream out) {        if (null != in) {            try {                in.close();            } catch (IOException e) {                // e.printStackTrace();            }        }        if (null != out) {            try {                out.close();            } catch (IOException e) {                // e.printStackTrace();            }        }    }}

 

转载地址:http://rczia.baihongyu.com/

你可能感兴趣的文章
HTML精确定位:scrollLeft,scrollWidth,clientWidth,offsetWidth之完全详解
查看>>
Android的intent之间复杂参数的传递
查看>>
利用JQuery直接调用asp.net后台方法
查看>>
wifi操作及实例
查看>>
[hadoop源码阅读][6]-org.apache.hadoop.ipc-protocol和心跳分析
查看>>
Ubuntu修改计算机名和用户名
查看>>
ASP.NET MVC:自定义RazorViewEngine视图引擎
查看>>
T-SQL之表变量与临时表的比较
查看>>
Project Euler problem 61
查看>>
腾讯微博java(android)sdk新增微博api详细介绍
查看>>
基频提取
查看>>
Call to undefined function mysql_connect()
查看>>
【转】Chrome 控制台不完全指南
查看>>
高可用Hadoop平台-探索
查看>>
keyset与entryset
查看>>
GIT 如何合并另一个远程Git仓库的文件到本地仓库里某个指定子文件夹并不丢失远程提交记录?...
查看>>
Android推送方案分析(MQTT/XMPP/GCM)
查看>>
算法入门
查看>>
Leetcode: Remove Invalid Parentheses
查看>>
百度云网盘高速通道加速破解版 去广告纯净版干净云
查看>>