原创  JAVA WEB 或spring 中附件下载文件和在浏览器中打开文件模式设置

分类:java 2021-08-17T21:17:35    101人阅读   
/**
* 附件下载方式放回
**/
public static void downloadFile(String fileName, InputStream inputStream, HttpServletResponse response) throws IOException, BusinessServiceException
{
    if(inputStream != null)
    {
        ServletOutputStream os = response.getOutputStream();
        try(BufferedInputStream bis = new BufferedInputStream(inputStream); BufferedOutputStream bos = new BufferedOutputStream(os))
        {
            response.setCharacterEncoding("UTF-8");
            response.setContentType("application/force-download;");
            response.setHeader("Content-Disposition", "attachment;fileName=" + URLEncoder.encode(fileName, "UTF-8"));
            int length;
            byte[] bytes = new byte[2048];
            while(-1 != (length = bis.read(bytes)))
            {
                bos.write(bytes, 0, length);
            }
        }
        catch(IOException e)
        {
            log.error("download exception:", e);
            throw new BusinessServiceException("下载文件失败!");
        }
    }
}

/**
* 浏览器中打开预览方式
**/
public static void previewFile(String fileName, InputStream inputStream, HttpServletResponse response) throws IOException, BusinessServiceException
{
    if(inputStream != null)
    {
        ServletOutputStream os = response.getOutputStream();
        try(BufferedInputStream bis = new BufferedInputStream(inputStream); BufferedOutputStream bos = new BufferedOutputStream(os))
        {
            response.setCharacterEncoding("UTF-8");
            response.setContentType("image/png");
            response.setHeader("Content-Disposition", "inline;fileName=" + URLEncoder.encode(fileName, "UTF-8"));
            int length;
            byte[] bytes = new byte[2048];
            while(-1 != (length = bis.read(bytes)))
            {
                bos.write(bytes, 0, length);
            }
        }
        catch(IOException e)
        {
            log.error("previewFile exception:", e);
            throw new BusinessServiceException("文件预览失败!");
        }
    }
}


支付宝打赏 微信打赏

如果文章对你有帮助,欢迎点击上方按钮打赏作者

服务器费用不足...

INSPINIA - 响应CRM后台模板 附加前端单页滚动模板

unicorn后台管理模版

3套CRM,CMS,etc系统后台模板 bootstrap数据管理页面 - Adminto v1.5

新闻列表jquery.SuperSlide整体切换

挂号预约手机端页面Vue代码

手机短信验证码注册H5页面

手机端邀请好友统计页面

jquery顶部导航浮动二级菜单

jquery产品介绍列表切换

Bootstrap电商系统管理模板_换肤HTML5后台系统UI框架 - AdminDesigns1.5

2048小游戏html代码

响应式图文博客网站HTML模板

网上书店HTML模板_Bootstrap网上书城电商HTML5模板 - BookStore

svg旋转动画loading特效

仿天猫购物详情页h5页面

微信助力活动模板 bootstrap框架手机网页模板

仿微信聊天主界面html

5套响应式大型在线商城HTML5模板_各行业电商模板HTML框架 - MyStore

layui房产物业管理系统OA模板

layui后台HTML框架管理系统模板

服务器费用不足...
 工具推荐 更多»