springboot实现多文件上传功能

本文实现springboot的多文件上传,首先创建一个springboot项目,添加spring-boot-starter-web依赖。

然后在resources下的static文件夹下创建uploads.html文件,文件内容如下:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>多文件上传</title>
</head>
<body>
<form action="/uploads" method="post" enctype="multipart/form-data">
  <input type="file" name="uploadFiles" value="请选择文件" multiple>
  <input type="submit" value="上传">
</form>
</body>
</html>

然后编写Controller类

@RestController
public class FilesUploadController {

  SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd/");

  @RequestMapping("/uploads")
  public String upload(MultipartFile[] uploadFiles, HttpServletRequest request) {
    List list = new ArrayList();//存储生成的访问路径
    if (uploadFiles.length > 0) {
      for (int i = 0; i < uploadFiles.length; i++) {
        MultipartFile uploadFile = uploadFiles[i];
        //设置上传文件的位置在该项目目录下的uploadFile文件夹下,并根据上传的文件日期,进行分类保存
        String realPath = request.getSession().getServletContext().getRealPath("uploadFile");
        String format = sdf.format(new Date());
        File folder = new File(realPath + format);
        if (!folder.isDirectory()) {
          folder.mkdirs();
        }

        String oldName = uploadFile.getOriginalFilename();
        System.out.println("oldName = " + oldName);
        String newName = UUID.randomUUID().toString() + oldName.
            substring(oldName.lastIndexOf("."), oldName.length());
        System.out.println("newName = " + newName);
        try {
          //保存文件
          uploadFile.transferTo(new File(folder, newName));

          //生成上传文件的访问路径
          String filePath = request.getScheme() + "://" + request.getServerName() + ":"+ request.getServerPort() + "/uploadFile" + format + newName;
          list.add(filePath);
        } catch (IOException e) {
          e.printStackTrace();
        }
      }
      return list.toString();
    } else if (uploadFiles.length == 0) {
      return "请选择文件";
    }
    return "上传失败";
  }
}

相比于单文件上传,这里就多了一个遍历的过程。

文件上传常见配置:

#是否开启文件上传支持,默认是true
spring.servlet.multipart.enabled=true
#文件写入磁盘的阈值,默认是0
spring.servlet.multipart.file-size-threshold=0
#上传文件的临时保存位置
spring.servlet.multipart.location=D:\\upload
#单个文件的最大值,默认是1MB
spring.servlet.multipart.max-file-size=1MB
#多个文件上传时的总大小 值,默认是10MB
spring.servlet.multipart.max-request-size=10MB
#是否延迟解析,默认是false
spring.servlet.multipart.resolve-lazily=false

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • SpringBoot+layui实现文件上传功能

    什么是spring boot Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程.该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置.用我的话来理解,就是spring boot其实不是什么新的框架,它默认配置了很多框架的使用方式,就像maven整合了所有的jar包,spring boot整合了所有的框架(不知道这样比喻是否合适). 页面代码(只需要引入基础layui的css与js) <fieldset c

  • springboot以FTP方式上传文件到远程服务器

    一.html代码   <div class="layui-form-item"> <label class="layui-form-label">上传附件:</label> <div class="layui-input-block doc-litpic"> <button type="button" name="avatar" class="

  • springboot实现文件上传步骤解析

    这篇文章主要介绍了springboot实现文件上传步骤解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 第一步编写上传的前段页面 <div> <button type="button" class="btn btn-primary" ng-click="openAddModal()" data-toggle="modal" data-target=&quo

  • SpringBoot实现Excel文件批量上传导入数据库

    Spring boot + Spring data jpa + Thymeleaf 批量插入 + POI读取 + 文件上传 pom.xml: <!-- https://mvnrepository.com/artifact/org.apache.poi/poi --> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <versi

  • springboot整合vue实现上传下载文件

    springboot整合vue实现上传下载文件,供大家参考,具体内容如下 环境 springboot 1.5.x 完整代码下载:springboot整合vue实现上传下载 1.上传下载文件api文件 设置上传路径,如例子: private final static String rootPath = System.getProperty("user.home")+File.separator+fileDir+File.separator; api接口: 下载url示例:http://l

  • java Springboot实现多文件上传功能

    前端采用layui框架,讲解多文件上传的完整实现功能. 前端html重点代码如下: <div class="layui-form-item"> <label class="layui-form-label">上传文件</label> <div class="layui-input-block"> <div class="layui-upload"> <butto

  • 详解SpringBoot下文件上传与下载的实现

    SpringBoot后台如何实现文件上传下载? 最近做的一个项目涉及到文件上传与下载.前端上传采用百度webUploader插件.有关该插件的使用方法还在研究中,日后整理再记录.本文主要介绍SpringBoot后台对文件上传与下载的处理. 单文件上传 / 单文件上传 @RequestMapping(value = "/upload") @ResponseBody public String upload(@RequestParam("file") Multipart

  • SpringBoot上传文件到本服务器 目录与jar包同级问题

    前言 看标题好像很简单的样子,但是针对使用jar包发布SpringBoot项目就不一样了. 当你使用tomcat发布项目的时候,上传文件存放会变得非常简单,因为你可以随意操作项目路径下的资源.但是当你使用SpringBoot的jar包发布项目的时候,你会发现,你不能像以前一样操作文件了.当你使用File file = new File()的时候根本不知道这个路径怎么办.而且总不能很小的项目也给它构建一个文件服务器吧.所以这次就来解决这样的问题. 不想知道细节的,可以直接跳转到最后封装的部分,里面

  • springboot实现多文件上传功能

    本文实现springboot的多文件上传,首先创建一个springboot项目,添加spring-boot-starter-web依赖. 然后在resources下的static文件夹下创建uploads.html文件,文件内容如下: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>多文件上传</title&g

  • SpringBoot实现简单文件上传功能

    通过 SpringBoot 实现了表单下的文件上传,前后端分离情况下的文件上传.本案例不连接数据库,只做基本的文件上传操作. 在 SpringBoot 中不需要额外导入其他依赖,正常引入即可. 后端 controller 的写法 package com.dailyblue.java.controller;   import org.springframework.util.ResourceUtils; import org.springframework.web.bind.annotation.

  • SpringBoot实现单文件上传

    SpringBoot实现单文件上传功能,供大家参考,具体内容如下 架构为springboot+thymeleaf,采用ajax方式提交 1. 页面testFile.html <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>测试文件上传</title> <script src="../static/jquery/jquery-2.

  • SpringBoot 集成MongoDB实现文件上传功能

    目录 前言 环境 代码实现 测试 源码 前言 记录下SpringBoot集成MongoDB实现文件上传的步骤 MongoDB - 5.0.6安装包 链接: https://pan.baidu.com/s/1_7nJDe3ndraNyo3vGWOXhg?pwd=i4cv 提取码: i4cv 环境 SpringBoot - 2.5.12MongoDB - 5.0.6 代码实现 pom.xml <dependency> <groupId>org.springframework.boot&

  • Spring框架实现文件上传功能

    在Java中实现文件的上传有多种方式,如smartUpload或是使用Strus2,本文与大家分享使用Spring框架中的MultipartFile类来实例文件的上传. 不啰嗦了,直接上干货.先是编写了一个实现文件上传的类FileUploadingUtil,此类中定义了两个对外公开的方法,upload和getFileMap. 前者需要传入一个Map参数,是用户提交的表单中的文件列表,最终返回值的也是一个Map类型对象,其键名为上传的文件名称,键值为文件在服务器上的存储路径:后者主要是用于测试用途

  • Spring Boot 会员管理系统之处理文件上传功能

    温馨提示 Spring Boot会员管理系统的中,需要涉及到Spring框架,SpringMVC框架,Hibernate框架,thymeleaf模板引擎.所以,可以学习下这些知识.当然,直接入门的话使用是没问题,但是,涉及到一些异常和原理的话可能就有些困难. 1. 前端部分 在前端部分addMember.html是通过form表单来提交会员的信息,其中就包括了图片上传功能(这里涉及了文件上传操作),表单部分代码如下: <form th:action="@{/admin/addMember}

  • 实例详解SpringBoot+nginx实现资源上传功能

    最近小编在学习使用nginx放置静态资源,例如图片.视频.css/js等,下面就来记录一下一波学习干货. 1.nginx安装及配置 小编使用的服务器是阿里云的轻量应用服务器,系统使用的是Ubuntu.注意记得开放 9090TCP端口,如果不使用 9090端口作为服务器端口也可不用. 安装 首先,获取安装包是必要的吧,这里提供一个nginx-1.11.3-ubuntu.tar.gz https://pan.baidu.com/s/1vvb41QkOJ4VqfyFckXBkjA (密码45wz) 小

  • SpringBoot简单实现文件上传

    目录 1.创建SpringBoot项目 2.修改application.properties配置文件 3.编写控制器UserController类 4.编写前端页面index.html 5.效果展示 前言: 这里给大家介绍如何在SpringBoot项目中实现文件上传功能! 1.创建SpringBoot项目 打开IDEA,点击文件,选择新建项目,点击Spring Initializr,然后根据自己的需求设置项目名称,位置以及JDK.这里需要注意,服务器的URL最好设置为阿里云服务器,这样可以使得项

随机推荐