已知文件的URL,打包压缩下载文件

根据多个网络url打压缩包批量下载文件---java @RequestMapping("/toDowmNoteBygid") public void toDowmNoteBygid(List<Notes> urls , HttpServletRequest request,HttpServletResponse response, PrintWriter pw) { String gname="下载保存文件名" // 响应头... 阅读详情
  • 创建util类
package com.mgj.hardware.platform.api.util;

import javax.servlet.http.HttpServletResponse;
import java.io.*;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.nio.charset.StandardCharsets;
import java.util.List;
import java.util.UUID;
import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream;

public class UrlFilesToZip {

    /**
     * 根据文件链接把文件以流的形式下载下来
     *
     * @param urlPath
     * @return
     */
    public byte[] getImageFromURL(String urlPath) {
        byte[] data = null;
        InputStream is = null;
        HttpURLConnection conn = null;
        try {
            URL url = new URL(urlPath);
            conn = (HttpURLConnection) url.openConnection();
            conn.setDoInput(true);
            conn.setDoOutput(true);
            conn.setRequestMethod("GET");
            conn.setConnectTimeout(6000);
            is = conn.getInputStream();
            if (conn.getResponseCode() == 200) {
                data = readInputStream(is);
            } else {
                data = null;
            }
        } catch (MalformedURLException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            try {
                if (is != null) {
                    is.close();
                }
            } catch (IOException e) {
                e.printStackTrace();
            }
            conn.disconnect();
        }
        return data;
    }

    /**
     * 把文件流转化为并且转成字节码
     *
     * @param is
     * @return
     */
    public byte[] readInputStream(InputStream is) {
        ByteArrayOutputStream baos = new ByteArrayOutputStream();
        byte[] buffer = new byte[1024];
        int length = -1;
        try {
            while ((length = is.read(buffer)) != -1) {
                baos.write(buffer, 0, length);
            }
            baos.flush();
        } catch (IOException e) {
            e.printStackTrace();
        }
        byte[] data = baos.toByteArray();
        try {
            is.close();
            baos.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
        return data;
    }

    /**
     * 文件集合压缩,controller调用此方法
     *
     * @param response
     * @param urls
     */
    public static void filesdown(HttpServletResponse response, List<String> urls) {
        try {
            //自定义文件名
            String zipFileName = "robotLog_" + UUID.randomUUID().toString().substring(0, 7) + ".zip";
            //控制文件名编码
            zipFileName = new String(zipFileName.getBytes(), StandardCharsets.UTF_8);
            ByteArrayOutputStream bos = new ByteArrayOutputStream();
            ZipOutputStream zos = new ZipOutputStream(bos);
            UrlFilesToZip s = new UrlFilesToZip();
            for (String oneFile : urls) {
                //剪切url后缀获取文件格式,http://mgjtest.4000750222.com/mgjtestZZALgEhyXyHM.log,如果其他url格式不一样,可以自定义获取文件格式
                String suffix = oneFile.substring(oneFile.lastIndexOf("."));
                //自定义打包文件中单个文件名
                zos.putNextEntry(new ZipEntry(System.currentTimeMillis() + suffix));
                //调用上面的方法,获取二进制文件
                byte[] bytes = s.getImageFromURL(oneFile);
                zos.write(bytes, 0, bytes.length);
                zos.closeEntry();
            }
            zos.close();
            // 设置强制下载不打开
            response.setContentType("application/force-download");
            response.setCharacterEncoding("UTF-8");
            // inline在浏览器中直接显示,不提示用户下载
            // attachment弹出对话框,提示用户进行下载保存本地
            // 默认为inline方式
            response.setHeader("Content-Disposition", "attachment;filename=" + zipFileName);
            OutputStream os = response.getOutputStream();
            os.write(bos.toByteArray());
            os.close();
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

  • 创建controller

    /**
     * 获取机器人日志
     *
     * @param
     */
    @GetMapping("/platform/downloadLog")
    @ApiOperation(value = "获取机器人日志", notes = "获取机器人日志")
    public void downloadRobotLog(HttpServletResponse response) {
           
           #如果前端没有传过来url集合,这部分处理获取url集合代码
           
            UrlFilesToZip.filesdown(response, list);
     
    }
  • 完结
vue项目批量加载url文件并打包到zip下载 vue项目批量加载url文件并打包到zip下载 项目里之前是遇到这样一个需求哈,需要根据选择的不同动态批量生成并下载图片, 而且这个图片不是一张一张生成下载,而是要等他选好条件之后, 把对应的图片动态生成后打包到一个zip压缩包里,然后下载,让客户更方便 好吧,我记记我怎么个思路 过程 动态生成图片我之前的博客写到了,在后台生成的可下载。 批量多个的话 那就把这个下载图片的url给存到数组里, 遍历链接使用vue里的axios下载返回的promise对象 得到的所有对象,使用file-saver保存到zip 阅读详情

相关推荐

Java 实现多个 URL 文件下载并打包成 Zip 文件的方法详解

在 Java 应用程序中,有时我们需要从多个 URL 地址下载文件,并将这些文件打包成一个 Zip 文件进行批量处理或传输。本文将介绍如何使用 Java 实现多个 URL 文件下载并打包成 Zip 文件的方法,帮助你实现灵活的文件下载和打包功能。在 Java 中,我们可以使用 java.net.URL 类和 java.util.zip 包提供的类来实现多个 URL 文件的下载和打包。接下来,我们可以定义一个方法,接收多个 URL 地址和目标 Zip 文件路径,实现文件下载和打包的功能。

pleaseprintf的博客 3583

指定多个文件从oss下载并打zip包到本地 Java

通过以上代码,我们可以指定多个文件从OSS下载,并将它们打包成一个ZIP文件保存到本地。这样可以简化文件的传输和存档过程,提高效率和便利性。Java的OSS SDK提供了强大且易于使用的功能,使得文件操作变得简单和高效。以上是关于在Java中指定多个文件从OSS下载并打包成ZIP文件的介绍,希望能对你有所帮助。如果你有任何问题或反馈,请随时告诉我。

牛肉胡辣汤 3667

前端批量获取文件并打包压缩解决方案

前言 前端文件下载我相信很多小伙伴并不陌生,下载文件的形式也有很多,例如,后端返回一个文件地址,我们把地址放在<a></a>标签里面点击下载;或者是通过后端接口返回文件流,我们再对流进行一系列的操作等等。 单个件下载的解决方法有很多,但是当我们需要批量下载文件的时候,我们该怎么去做呢? 方案 面对这样的需求,我们提出了以下几个方案: 方案一:直接获取后端返回文件地址数组,然后一个一个的去下载。但是这样每次下载一个文件,浏览器会显示比较多的下载任务; 方案二:后端对先对文件进行打包压缩

qq_42002487的博客 1713

JAVA 根据Url把多文件打包成ZIP下载

压缩文件代码工具类:public class UrlFilesToZip { private static final Logger logger = LoggerFactory.getLogger(UrlFilesToZip.class); //根据文件链接把文件下载下来并且转成字节码 public byte[] getImageFromURL(String urlPath)

莫哈的博客 5880

Vue3 - 详细实现将多个文件批量导出为ZIP压缩包格式并下载功能,vue3将文件批量下载打包成ZIP下载保存本地,下载多个文件打包输出成zip格式(支持二进制文件流/base64图片/文件URL)

vue3,nuxt3,vue3批量导出文件打包成压缩包,Vue3中如何批量导出文件(图片/PDF)并打包压缩成ZIP,实现多张图片导出zip文件,vue3导出pdf文件很多如何变成导出一个zip文件,jszip插件文档流,vue3中下载多个文件打包为一个zip,Vue3中将文件批量下载打包成zip格式,批量下载图片并打包成压缩包,vue3导出多个pdf或excel打包成zip压缩包进行下载,批量下载文件并打压缩包,vue3中如何批量下载文件并生成zip格式文件,文件通过服务端接口返回二进制文件流如何处理,文

🏆 前端领域优质创作者 1万+

Java实现基于URL的多文件下载与ZIP打包导出

本文还有配套的精品资源,点击获取 简介:在Java编程中,实现从多个URL下载文件,并将它们打包成ZIP格式进行导出是一个常见的需求。该过程包括网络请求的建立、文件的本地I/O操作、文件夹的压缩打包,以及与HTML页面交互的导出功能。为了提升用户体验,下载和打包操作通常需要异步执行,以避免阻塞主线程。同时,安全性也是开发过程中需要考虑的重要因素,例如确保URL来源的安全和防...

weixin_35950531的博客 2363

根据URL批量下载文件并压缩成zip文件

根据url批量下载图片或者视频,自动区分图片或视频,将下载好的图片根据压缩等级压缩并打包到zip文件夹。

分享互联网的有趣知识~ 2075

JAVA 根据Url把多文件打包成ZIP下载实例

主要介绍了JAVA 根据Url把多文件打包成ZIP下载的相关资料,需要的朋友可以参考下

文件预览/下载方式:通过二进制流(Blob)下载、或者通过文件Url下载

【代码】文件预览/下载方式:通过二进制流(Blob)下载、或者通过文件Url下载。

TTianYe的博客 1494

PlatformIO串口监视器波特率配置实战:从乱码到清晰输出的关键步骤

本文针对PlatformIO串口监视器常见的乱码问题,深入解析了其根源在于波特率不匹配。文章核心在于指导开发者通过修改项目根目录下的platformio.ini配置文件,正确设置monitor_speed参数,确保与代码中Serial.begin()的波特率一致,从而实现从乱码到清晰输出的关键步骤。此外,还介绍了其他实用的串口监控配置与常见避坑指南。

weixin_29183637的博客 389

EDA与机器学习融合:智能优化芯片设计流程的工程实践

机器学习作为数据驱动的核心技术,通过从历史数据中学习复杂模式,实现对系统行为的预测与优化。其原理在于构建模型,将输入特征映射到目标变量,从而揭示数据背后的内在规律。在工程领域,这项技术的核心价值在于能够将专家经验转化为可量化、可复用的智能模型,显著提升自动化水平与决策效率。电子设计自动化(EDA)是芯片设计的关键支撑,传统流程高度依赖人工试错,面临参数空间巨大、优化周期长等挑战。将机器学习应用于EDA,能够构建预测模型来预估设计性能(PPA),或通过代理模型加速设计空间探索,实现智能化的设计辅助与优化。本文

weixin_30411239的博客 684

根据文件Url地址获取文件,并将文件放入zip压缩包中下载

废话不多说,直接上代码(Vue + java) Vue前段代码 // 此处是触发下载功能的函数 downFileToZip() { let urls = 'fileUrl1,fileUrl2,fileUrl3' //设置参数 let downUrl = 'localhost:8080/test/down?params=' + urls //设置请求地址,拼接参数 ...

MrZhou的博客 3873

std::map看来可以被淘汰了?可以用vector来替代,而且更好

vector的优势在于内存连续,可以先std::sort,然后std::lower_bound,或者std::binary_search。而std::map,insert的时候,需要new出内存。

tumu_C的博客 1019

Java多个文件根据URL下载后打包zip导出

该示例框架为Spring Boot,根据Url把多个文件下载到指定的文件夹目录,然后再将文件夹目录打包成zip导出,有个简单的导出html页面,点击导出按钮下载zip 所需jar包commons-io service层 package com.test.service; import java.io.BufferedInputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputS

涛哥是个大帅比 4940

python数据处理与分析案例,python如何进行数据处理

大家好,本文将围绕基于python的数据处理案例展开说明,python数据处理与分析案例是一个很多人都想弄明白的事情,想搞清楚python如何进行数据处理需要先了解以下几个事情。大家好,小编来为大家解答以下问题,python数据处理案例步骤及其代码,python数据处理与分析教程,今天让我们一起来看看吧!哈喽~今天学习记录的是数据分析实训小案例。就用这个案例来好好巩固一下 python 数据分析三剑客。

a17348的博客 1238

《Zephyr OS 入门与实战》第15章:LoRaWAN 集成

【代码】《Zephyr OS 入门与实战》第15章:LoRaWAN 集成。

2301_79143213的博客 608

Java 文件打包下载(打成zip压缩包来下载,url 可直接访问的文件打包下载)

一、 java 打ZIP 下载工具类 package com.benefit.car.admin.utils; import org.springframework.util.ResourceUtils; import javax.servlet.http.HttpServletResponse; import java.io.*; import java.net.URL; import java.util.List; import java.util.zip.ZipEntry; import java

ws - 兮的博客空间 1738

RSL-RL:开源人形机器人强化学习控制研究库

摘要:RSL-RL是一款专为机器人领域设计的开源强化学习库,其核心特点是紧凑性、可修改性和高性能。该库聚焦PPO和BC两大主流算法,并整合了对称性增强、好奇心驱动等机器人专用技术。通过纯GPU训练优化,RSL-RL在大型仿真中展现出卓越的吞吐性能,已成功应用于腿足运动控制、全身协调等多个机器人研究场景。其轻量级架构包含运行器、算法和网络三个可独立修改的组件,支持TensorBoard等主流日志工具。该框架特别适合需要快速原型开发的机器人研究者,但不适用于通用机器学习基准测试。开源地址:https://git

2506_90492529的博客 1674

java把图片url地址转为图片文件并打包压缩下载

序言: 最近做项目时遇到一个需求就是把上传到oss上的图片批量压缩下载,众所周知,上传到oss的图片返回保存的是url地址,而url是无法直接下载成图片的,所有中间需要转一下。下面是我写的一个工具类,纯java操作,不依赖第三方jar有需要的朋友可以参考一下,大佬请轻喷,大家有什么更好的办法请多多指教。 1.getFile方法:url转为文件 /** * 网络url转为文件 * @param url * @return * @throws Exception

不曾留得桃花影 3859

《网络存储技术》形考实训4:为小微企业搭建基于Windows Server的文件共享与权限管理服务

本文介绍了在域环境下部署DFS分布式文件系统的完整流程。项目目标是将3台存储服务器(NS1、NS2、NS3)上的多个共享文件夹通过DFS命名空间进行统一整合,使员工可通过单一访问路径访问所有资源。实施步骤包括:1)搭建AD域环境并创建用户/组;2)将存储服务器加入域并配置共享权限;3)在域控制器安装DFS命名空间角色;4)创建基于域的命名空间(\xc.cn\共享);5)将各服务器共享文件夹映射到命名空间;6)进行客户端访问验证。通过DFS实现了物理存储位置不变情况下的逻辑统一访问,提高了文件管理的便捷性和可

深耕计算机专业知识与技术。 946

AI测试实战:手把手教你做LLM(大模型)性能测试「含完整代码」

大模型API性能测试是评估模型服务响应能力、吞吐量和资源效率的关键手段。核心指标包括总响应时间、吐字率、首token延迟、输入/输出tokens数量、QPM等。测试流程涵盖构造负载、并发请求、数据采集和指标计算。优化建议针对吐字率低、首token延迟高、QPM偏低等问题,从模型、硬件、系统等多层面提出解决方案。

blues_C的博客 1430

Java实现多文件打包成压缩包下载

Java实现多文件打包成压缩包下载Java实现多文件打包成压缩包下载Java实现多文件打包成压缩包下载Java实现多文件打包成压缩包下载Java实现多文件打包成压缩包下载Java实现多文件打包成压缩包下载Java实现多文件打包成压缩包下载Java实现多文件打包成压缩包下载Java实现多文件打包成压缩包下载Java实现多文件打包成压缩包下载Java实现多文件打包成压缩包下载Java实现多文件打包成压缩包下载Java实现多文件打包成压缩包下载Java实现多文件打包成压缩包下载Java实现多文件打包成压缩包下载

各类程序设计成品、文档、学习资料 1579

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

C#通过URl批量下载&打包压缩

【代码】C#通过URl批量下载&打包压缩。

opinion001的博客 1219

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

java url压缩_JAVA 根据Url把多文件打包成ZIP下载实例

压缩文件代码工具类:public class UrlFilesToZip {private static final Logger logger = LoggerFactory.getLogger(UrlFilesToZip.class);//根据文件链接把文件下载下来并且转成字节码public byte[] getImageFromURL(String urlPath) {byte[] data...

weixin_39613385的博客 813

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

远程文件服务器多资源压缩下载多url资源压缩下载

@ApiOperation("导出资料多个zip下载") @RequestMapping(value = "/infoexportfiles", method = {RequestMethod.GET, RequestMethod.POST}) public void infoexportfiles(HttpServletResponse res,@ApiParam(value =...

alen_en的博客 301

Java根据多个文件URL打包成一个压缩包下载

直接上代码: @GetMapping("/download") public void downloadFiles(HttpServletRequest request, HttpServletResponse response, String[] urls) { // 响应头的设置 response.reset(); response.setCharacterEncoding("...

赵树祥的博客 6043
上一篇: Lambda表达式之方法引用
下一篇: SpringBoot集成Swagger2
jothan_lee
博客等级 码龄9年 30粉丝 58原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值