一:添加commons-fileupload依赖

打开pom文件添加

<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.3.1</version>
</dependency>

  

二:添加系统变量

打开core→constant文件,添加文件保存路径

//文件上传储存的地址
public static final String SAVEFILEPATH = "F://img";

  

三:添加文件上传限制

application.properties中添加

spring.http.multipart.enabled=true #默认支持文件上传.
spring.http.multipart.file-size-threshold=0 #支持文件写入磁盘.
spring.http.multipart.location= # 上传文件的临时目录
spring.http.multipart.max-file-size=1Mb # 最大支持文件大小
spring.http.multipart.max-request-size=10Mb # 最大支持请求大小

  

  

四:创建文件上传工具类

创建core→utils→UploadActionUtil.java

package com.example.demo.core.utils;

import com.example.demo.core.constant.ProjectConstant;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.multipart.MultipartHttpServletRequest;
import org.springframework.web.multipart.commons.CommonsMultipartResolver; import javax.servlet.http.HttpServletRequest;
import java.io.File;
import java.text.SimpleDateFormat;
import java.util.*; /**
* @author yux
* 文件上传控制器
*/
public class UploadActionUtil { public static List<String> uploadFile(HttpServletRequest request) throws Exception {
List<String> list = new ArrayList<>();
CommonsMultipartResolver multipartResolver = new CommonsMultipartResolver(
request.getSession().getServletContext());
if (multipartResolver.isMultipart(request)) {
MultipartHttpServletRequest multiRequest = (MultipartHttpServletRequest) request;
Iterator<String> iterator = multiRequest.getFileNames();
while (iterator.hasNext()) {
// 取得上传文件
MultipartFile file = multiRequest.getFile(iterator.next());
if (file != null) {
// 取得当前上传文件的文件名称
String myFileName = file.getOriginalFilename();
// 如果名称不为“”,说明该文件存在,否则说明该文件不存在
if (myFileName.trim() != "") {
String fileTyps = myFileName.substring(myFileName.lastIndexOf("."));
// String tempName="demo"+fileTyps;
String tempName = UUID.randomUUID().toString() + fileTyps;
// 创建文件夹
String folderPath = ProjectConstant.SAVEFILEPATH + File.separator + folderName();
File fileFolder = new File(folderPath);
if (!fileFolder.exists() && !fileFolder.isDirectory()) {
fileFolder.mkdirs();
}
File uploadFile = new File(folderPath + File.separator + tempName);
file.transferTo(uploadFile);
myFileName = folderName() + File.separator + tempName;
list.add(ProjectConstant.SAVEFILEPATH + "//" + myFileName);
}
}
}
}
return list;
} /**
* 得年月日的文件夹名称
*
* @return
*/
public static String getCurrentFilderName() throws Exception{
Calendar now = Calendar.getInstance();
return now.get(Calendar.YEAR) + "" + (now.get(Calendar.MONTH) + 1) + "" + now.get(Calendar.DAY_OF_MONTH);
} /**
* 创建文件夹
*
* @param filderName
*/
public static void createFilder(String filderName) throws Exception {
File file = new File(filderName);
// 如果文件夹不存在则创建
if (!file.exists() && !file.isDirectory()) {
file.mkdirs();
}
} /**
* 文件扩展名
*
* @param fileName
* @return
*/
public static String extFile(String fileName) throws Exception{
return fileName.substring(fileName.lastIndexOf("."));
} /**
* 当前日期当文件夹名
*
* @return
*/
public static String folderName() throws Exception {
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
String str = sdf.format(new Date());
return str;
}
}

  

五:创建UploadFileController

package com.example.demo.controller;

import com.example.demo.core.ret.RetResponse;
import com.example.demo.core.ret.RetResult;
import com.example.demo.core.utils.UploadActionUtil;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import javax.servlet.http.HttpServletRequest;
import java.util.List; @RestController
@RequestMapping("/uploadFile")
public class UploadFileController { @PostMapping("/upload")
public RetResult<List<String>> upload(HttpServletRequest httpServletRequest) throws Exception {
List<String> list = UploadActionUtil.uploadFile(httpServletRequest);
return RetResponse.makeOKRsp(list);
}
}

  

六:测试

打开postman

输入localhost:8080/uploadFile/upload

注意:请求参数如下

(十)SpringBoot的文件上传的更多相关文章

  1. SpringBoot图文教程4—SpringBoot 实现文件上传下载

    有天上飞的概念,就要有落地的实现 概念+代码实现是本文的特点,教程将涵盖完整的图文教程,代码案例 文章结尾配套自测面试题,学完技术自我测试更扎实 概念十遍不如代码一遍,朋友,希望你把文中所有的代码案例 ...

  2. SpringBoot 整合文件上传 elment Ui 上传组件

    SpringBoot 整合文件上传 elment Ui 上传组件 本文章记录 自己学习使用 侵权必删! 前端代码 博主最近在学 elment Ui 所以 前端使用 elmentUi 的 upload ...

  3. springboot+web文件上传和下载

    一.首先安装mysql数据库,开启web服务器. 二.pom.xml文件依赖包配置如下: <?xml version="1.0" encoding="UTF-8&q ...

  4. SpringBoot(3) 文件上传和访问

    springboot文件上传 MultipartFile file,源自SpringMVC MultipartFile 对象的transferTo方法,用于文件保存(效率和操作比原先用FileOutS ...

  5. SpringBoot的文件上传

    先在src/main/resources下新建一个static目录用以存放html页面,简单的html页面如下 <!DOCTYPE html> <html> <head& ...

  6. springBoot的文件上传功能

    知识点: 后台:将上传的图片写入指定服务器路径,保存起来,返回上传后的图片路径(在springBoot中,参考博客:http://blog.csdn.net/change_on/article/det ...

  7. SpringBoot下文件上传与下载的实现

    原文:http://blog.csdn.net/colton_null/article/details/76696674 SpringBoot后台如何实现文件上传下载? 最近做的一个项目涉及到文件上传 ...

  8. Angular14 利用Angular2实现文件上传的前端、利用springBoot实现文件上传的后台、跨域问题

    一.angular2实现文件上传前端 Angular2使用ng2-file-upload上传文件,Angular2中有两个比较好用的上传文件的第三方库,一个是ng2-file-upload,一个是ng ...

  9. springboot 修改文件上传大小限制

    springboot 1.5.9文件上传大小限制spring:http:multipart:maxFileSize:50MbmaxRequestSize:50Mb springboot 2.0文件上传 ...

随机推荐

  1. PHP生成excel(2)

    现在数据库有一组数据,就是按照年级的分类的学生分数,如何按照年级分类导出到excel表中 1.数据库配置文件config.php <?php $config = array( 'host'=&g ...

  2. bash的pushd和popd

    1 pushd和popd是bash shell的builtin命令 2 pushd和popd维护了一个目录栈 pushd xxx就是将xxx放入目录栈顶. 目录栈顶就是当前的目录. 但是cd的话,会不 ...

  3. MySQL 权限生效

    用GRANT.REVOKE或SET PASSWORD对授权表施行的修改会立即被服务器注意到. 如果你手工地修改授权表(使用INSERT.UPDATE等等),你应该执行一个FLUSH PRIVILEGE ...

  4. Java中需要了解的点

    1.32位jvm.64位区别? 2.

  5. TCO 2016 Round 1B

    problem 250 Problem Statement Vasa likes to construct sequences of numbers. If you tell him a positi ...

  6. Vue中 key keep-alive

    keep-alive key <!DOCTYPE html> <html> <head> <title></title> <scrip ...

  7. POJ3259 Wormholes —— spfa求负环

    题目链接:http://poj.org/problem?id=3259 Wormholes Time Limit: 2000MS   Memory Limit: 65536K Total Submis ...

  8. FZU1686 神龙的难题 —— Dancing Links 可重复覆盖

    题目链接:https://vjudge.net/problem/FZU-1686 Problem 1686 神龙的难题 Accept: 812    Submit: 2394 Time Limit: ...

  9. HDU2612 Find a way —— BFS

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2612 Find a way Time Limit: 3000/1000 MS (Java/Others ...

  10. 关于eclipse的resource文件没有发布到tomcat上的解决方案

    版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/luman1991/article/details/53457302