Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >SpringBoot之文件批量上传和下载

SpringBoot之文件批量上传和下载

作者头像
海加尔金鹰
发布于 2020-06-09 02:12:31
发布于 2020-06-09 02:12:31
4.9K03
代码可运行
举报
运行总次数:3
代码可运行

springboot 文件的批量上传和批量下载

之前学习并使用过文件的单个上传:springboot学习日志之DAY08文件上传功能 最近写程序过程当中需要使用到批量上传和批量下载,批量和单个文件的上传下载还是有很多的区别的。特此记录

文件批量上传

HTML代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 <input type="file" name="md" id="article_md" multiple="multiple" onchange="uploadFile()">

注意添加multiple="multiple"属性,这样弹出文件选择框之后就可以选择多个文件。

JS 后台代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
function uploadFile() {
    var files = $("#article_md")[0].files;
    var formData = new FormData();
    for (let file of files) {
	//将文件属性放入formdata里面,不能直接使用 formData.append("files",files)
        formData.append("files",file,file.name);
    }
    $.ajax({
        url: '/import',
        type: 'post',
        async: false,
        data: formData,
        processData: false,// 告诉jQuery不要去处理发送的数据
        contentType: false,// 告诉jQuery不要去设置Content-Type请求头
        beforeSend: function () {//过程...
            console.log('正在进行,请稍候')
        },
        success: function (res) {
            if (res.code == 0) {
                console.log('上传成功')
            } else {
                console.log('上传失败')
            }
        },
        error: function () {
            console.log('上传失败')
        }
    })
}

JAVA后台代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 @PostMapping("/import")
 public AjaxResult importMd(@RequestParam("files") MultipartFile[] files, HttpServletRequest request) {
      	//files 和formdata里面的属性名保持同名原则
        for (MultipartFile file : files) {
     	// 文件处理
        }
        return AjaxResult.SUCCESS();
    }

文件的批量下载

其实批量下载和单个下载都是一样的,区别在于,批量下载是将要下载的所有文件打包成一个压缩文件,然后下载这个压缩文件。

前端代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<a href="#" onclick="exportMd()" ></a>

function exportMd(){
    window.location.href = "/export"
}

后端代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
@GetMapping("/export")
public void exportedMd(HttpServletResponse response) {
        List<MlogArticlesEntity> list = mlogArticlesService.list();
        //生成zip文件存放位置
        long timeMillis = System.currentTimeMillis();
        String strZipPath = "D:/markdowm/" + timeMillis + ".zip";
        File file = new File("D:/markdowm/");
        //文件存放位置目录不存在就创建
        if (!file.isDirectory() && !file.exists()) {
            file.mkdirs();
        }
        try {
	    //通过response的outputStream输出文件
            ServletOutputStream outputStream = response.getOutputStream();
            ZipOutputStream out = new ZipOutputStream(new FileOutputStream(strZipPath));
            for (int i = 0; i < list.size(); i++) {
                out.putNextEntry(new ZipEntry("文件名称"));
                int len;
                // 读入需要下载的文件的内容,打包到zip文件
                out.write("文件内容");
                out.closeEntry();
            }
            out.close();
            BufferedInputStream bis = new BufferedInputStream(new FileInputStream(strZipPath));
	//将输入流的数据拷贝到输入流输出
            FileCopyUtils.copy(bis, outputStream);
            
        } catch (IOException e) {
            e.printStackTrace();
        }
	//删除文件或者文件夹下所有文件
	removeDir(file);
    }

private  void removeDir(File dir) {
        File[] files=dir.listFiles();
        for(File file:files){
            if(file.isDirectory()){
                removeDir(file);
            }else{
                file.delete();
            }
        }
    }

总结:很简单的一个功能,但还是记录一下,好久没有写上传下载的代码,再次接触,有些生疏了啊


标题:SpringBoot之文件批量上传和下载 作者:海加尔金鹰 地址:https://www.hjljy.cn/articles/2020/02/09/1581242261073.html

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-02-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
使用fileinput插件批量上传文件
  最近在做项目的时候涉及文件批量上传,使用bootstrap结合fileinput插件批量上传文件!以下是我在使用fileinput上传文件的过程。项目是基于springboot+thymeleaf的,所以文章中会有thymeleaf的语法。
雨落凋殇
2019/12/25
3.1K0
使用fileinput插件批量上传文件
SpringBoot Feign文件上传
写在前面 Feign 文件上传,与普通的Feign远程调用会有所不同,使用的时候需要注意。 客户端 <feign-form.version>3.0.3</feign-form.version> <!-- 文件上传 --> <dependency> <groupId>io.github.openfeign.form</groupId> <artifactId>feign-form</artifactId> <version>${feign-form.version}</version>
诺浅
2020/08/19
1.6K0
开发实例:用Vue和Java实现一个批量上传附件的功能
用户1289394
2023/09/22
5140
开发实例:用Vue和Java实现一个批量上传附件的功能
antd 实现批量上传
antd 中的 upload 组件功能强大,支持文件夹、拖拽、自动上传、ui 美观,文档完善,通过简单配置即可开发完功能,以功能为主的开发,建议使用组件完成
程序员王天
2023/10/18
9570
java实现多个网络文件批量下载并压缩
文档管理模块,列表中显示的记录的每日文件上传保存的记录.每条数据中有一个字段存放了文件的存储地址文件服务器上
java攻城狮
2020/10/10
5.8K0
SpringBoot文件上传下载
项目中经常会有上传和下载的需求,这篇文章简述一下springboot项目中实现简单的上传和下载。 新建springboot项目,前台页面使用的thymeleaf模板,其余的没有特别的配置,pom代码如
dalaoyang
2018/04/28
1K0
springboot (八) 文件上传下载
springboot项目中实现简单的上传和下载。 新建springboot项目,前台页面使用的thymeleaf模板,其余的没有特别的配置,pom代码如下: <?xml version="1.0" e
IT架构圈
2018/06/01
1.3K0
Springmvc+uploadify实现文件上传
   网上看了很多关于文件上传的帖子,众口不一,感觉有点乱,最近正好公司的项目里用到JQuery的uploadify控件做文件上传,所以整理下头绪,搞篇文档出来,供亲们分享。
bear_fish
2018/09/19
1.1K0
Springmvc+uploadify实现文件上传
vue 使用 axios 上传文件 — FormData
在此主要介绍 如何使用 formData 对象上传单文件和多文件,FormData 就是 XMLHttpRequest Level 2 新增的一个对象,利用它来提交表单、模拟表单提交,当然最大的优势就是可以上传二进制文件。
全栈程序员站长
2022/09/07
3.1K0
基于SpringWeb MultipartFile文件上传、下载功能
在Web开发中,文件上传是一个常见的功能需求。Spring框架提供了MultipartFile接口,用于处理文件上传请求。MultipartFile可以代表一个多部分文件上传请求中的一个文件,提供了一系列方法用于获取文件的各种属性和内容,使得在后端处理文件上传变得十分方便。下面我们将介绍MultipartFile在Web应用中的几种常见使用场景。
JavaEdge
2024/05/25
2390
大文件上传切片上传 vue java
使用vue+elementui进行前端开发, 实现在dialog中 带进度条的上传大文件页面
solate
2020/06/18
6.7K1
小程序上传多张图片到springboot后台,返回可供访问的图片链接
其实这两个截图就可以看出,我们图片上传成功了,并且给小程序前端返回了可供访问的图片url。 话不多说,直接看代码。
编程小石头
2020/10/22
2.2K0
小程序上传多张图片到springboot后台,返回可供访问的图片链接
小程序上传多张图片到springboot后台,返回可供访问的图片链接
其实这两个截图就可以看出,我们图片上传成功了,并且给小程序前端返回了可供访问的图片url。
编程小石头
2020/05/30
1.7K0
小程序上传多张图片到springboot后台,返回可供访问的图片链接
七、springBoot 简单优雅是实现文件上传和下载
好久没有更新spring Boot 这个项目了。最近看了一下docker 的知识,后期打算将spring boot 和docker 结合起来。刚好最近有一个上传文件的工作呢,刚好就想起这个脚手架,将文件上传和下载整理进来。
程序员爱酸奶
2020/03/04
53K0
七、springBoot 简单优雅是实现文件上传和下载
Web文件上传方法总结大全
文件上传在WEB开发中应用很广泛,我们经常发微博、发微信朋友圈都用到了图片上传功能。
用户7657330
2020/08/14
4.4K0
原生微信小程序批量上传文件
开发微信小程序,可能遇到最蛋疼的一个问题就是 小程序不支持批量上传,一次只能上传一个文件。想要批量上传只能递归上传。通过以下方式即可实现 “批量上传”。
hedeqiang
2020/01/13
3.1K0
原生微信小程序批量上传文件
SpringBoot3文件管理
首先文件的类型比较多样,处理起来比较复杂,其次文件涉及大量的IO操作,容易引发内存溢出;
知了一笑
2023/09/01
3880
SpringBoot3文件管理
java下载文件或文件夹
最近接到一个需求,就是将远程目录下的文件或文件夹下载到指定目录下,下面来看下最后的成果。
全栈程序员站长
2022/09/08
1.5K0
vue文件上传功能_vue如何自定义组件
vue的文件上传组件 upload ,拥有支持多种格式文件上传,单文件多文件等都支持,许多项目现在都少不了文件上传功能,但是vue 的upload组件如果直接引用,肯定也有一些不方便之处,有的时候需要传参数,需要手动触发上传方法,而不是选择了文件就上传,所以结合我项目实例,写一vue 自定义文件上传的实现,包括前端和后台的处理以及参数的接收。
全栈程序员站长
2022/09/22
1.4K0
sftp jsch文件移动备份的思路
1.jsch jar包不支持mv cp等移动复制的功能,转换思路,sftp下载文件到本地服务器,目录可以考虑使用/年/月/日层级。
oktokeep
2024/10/09
1030
推荐阅读
相关推荐
使用fileinput插件批量上传文件
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验