java——springboot,文件的下载

在许多地方我们后端服务器都需要为前端响应下载的功能

首先我们在download()中定义name接收前端需要下载的文件的文件名

response是我们要将下载到的数据写入其中,然后前端可以经过response获取里面的资源数据

,并显示在前端页面之上

步骤如下

1、我们先使用输入流读取我们需要的数据资源,也就是我们前端需要下载的数据资源

2、再创建一个输出流对象outputStream用于将数据写回浏览器

3、response.setContentType()限制下载文件的后缀类型

4、每次获取一些字节数据写入到bytes中,再将每次不同的bytes数据写入输出流,但无数据读时即len为-1

@GetMapping("/download")
    public void download(String name , HttpServletResponse response){
        try {
            //使用输入流,通过输入流读取文件内容
            FileInputStream fileInputStream=new FileInputStream(new File("D:\wrk\img\"+name));
            //输出流,通过输出流将文件写回浏览器
            ServletOutputStream outputStream = response.getOutputStream();
            response.setContentType("image/jpeg");
            int len=0;
            byte[] bytes = new byte[1024];
            
            while ((len=fileInputStream.read(bytes))!=-1){
                outputStream.write(bytes,0,len);
                outputStream.flush();
                System.out.println(bytes);
            }
        } catch (Exception e) {
            throw new RuntimeException(e);
        }
    }

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值