栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

javaweb客户端请求下载文件

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

javaweb客户端请求下载文件

这里使用Servlet的dopost方法来实现数据回传给客户端

 步骤:1.获取下载的文件名

2.获取ServletContext对象

3.获取要下载的文件类型

4.回传前,告诉客户端返回的数据类型

5.设置响应头,告诉客户端此文件用于下载

6.通过ServletContext对象获取输入流,将文件输入到内存中

7.获取响应的输出流,并同时将输入流的内容复制给该输出流响应给客户端

public class DownloadServlet extends HttpServlet {
    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        //获取下载的文件名
        String downloadFileName="2000057.jpg";
        //2、读取要下载的文件内容(通过ServletContext对象可以读取)
        ServletContext servletContext = getServletContext();
        //获取要下载的文件类型
        String mimeType = servletContext.getMimeType("/downloads/" + downloadFileName);
        System.out.println("下载的文件类型:"+mimeType);
        //4、在回传前,通过响应头告诉客户端返回的数据类型
        resp.setContentType(mimeType);
        //5、还要告诉客户端收到的数据是用于下载使用(还是使用响应头)
        //Content-Disposition响应头:表示收到的数据怎么处理
        //attachment表示附件,表示下载使用
        //filename=指定下载的文件名
        resp.setHeader("Content-Disposition","attachment;filename="+downloadFileName);
        //获取一个输入流,准备将内容输入内存中
        InputStream resource = servletContext.getResourceAsStream("/downloads/" + downloadFileName);
        //获取相应的输出流
        ServletOutputStream outputStream = resp.getOutputStream();
        //读取输入流中的数据,复制给输出流,输出给客户端
        IOUtils.copy(resource,outputStream);

    }
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/309998.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号