JAVA_通过URL获取文件,进行打包返回zip的字节流

该博客介绍了如何实现后端生成zip文件并提供下载的功能。后端Controller接收请求,调用Service处理,将多个图片链接打包成zip,并设置响应头以供前端下载。前端通过调用API,接收返回的blob数据,创建URL并打开下载窗口。工具类中提供了处理文件重复和写入zip的辅助方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


后端


controller

public void downloadFiles(@RequestBody @Valid Req<DownloadFilesDto> requestDTO, HttpServletResponse response) throws Exception {

    byte[] zipBytes = prpmUploadImageService.downloadFiles(requestDTO.getData());
    String filename = requestDTO.getData().getCaseNo() +"_"+ requestDTO.getData().getLossId()+".zip";
    response.setContentType(MediaType.APPLICATION_OCTET_STREAM_VALUE);

    StringBuilder contentDispositionValue = new StringBuilder();
    contentDispositionValue.append("attachment; filename=")
            .append(filename)
            .append(";")
            .append("filename*=")
            .append("utf-8''")
            .append(filename);

    response.setHeader("Access-Control-Expose-Headers","filename");
    response.setHeader("Content-disposition"
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值