1.pom.xml引入依赖配置

  1. <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  2. <modelVersion>4.0.0</modelVersion>
  3. <groupId>top.ytheng</groupId>
  4. <artifactId>springboot-demo</artifactId>
  5. <version>0.0.1-SNAPSHOT</version>
  6. <packaging>jar</packaging>
  7.  
  8. <parent>
  9. <groupId>org.springframework.boot</groupId>
  10. <artifactId>spring-boot-starter-parent</artifactId>
  11. <version>2.0.5.RELEASE</version>
  12. <relativePath/> <!-- lookup parent from repository -->
  13. </parent>
  14.  
  15. <properties>
  16. <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  17. <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
  18. <java.version>1.8</java.version>
  19. </properties>
  20.  
  21. <dependencies>
  22. <dependency>
  23. <groupId>org.springframework.boot</groupId>
  24. <artifactId>spring-boot-starter-web</artifactId>
  25. </dependency>
  26.  
  27. <dependency>
  28. <groupId>org.springframework.boot</groupId>
  29. <artifactId>spring-boot-starter-test</artifactId>
  30. <scope>test</scope>
  31. </dependency>
  32.  
  33. <dependency>
  34. <groupId>org.springframework.boot</groupId>
  35. <artifactId>spring-boot-starter-thymeleaf</artifactId>
  36. </dependency>
  37.  
  38. <dependency>
  39. <groupId>org.springframework.boot</groupId>
  40. <artifactId>spring-boot-devtools</artifactId>
  41. <optional>true</optional>
  42. <scope>true</scope>
  43. </dependency>
  44. </dependencies>
  45.  
  46. <build>
  47. <plugins>
  48. <plugin>
  49. <groupId>org.springframework.boot</groupId>
  50. <artifactId>spring-boot-maven-plugin</artifactId>
  51. </plugin>
  52. </plugins>
  53. </build>
  54. </project>

2.添加文件控制器FileController

  1. package top.ytheng.demo.controller;
  2.  
  3. import java.io.File;
  4. import java.io.IOException;
  5. import java.util.UUID;
  6.  
  7. import javax.servlet.http.HttpServletRequest;
  8.  
  9. import org.springframework.beans.factory.annotation.Value;
  10. import org.springframework.context.annotation.PropertySource;
  11. import org.springframework.stereotype.Controller;
  12. import org.springframework.web.bind.annotation.RequestMapping;
  13. import org.springframework.web.bind.annotation.RequestParam;
  14. import org.springframework.web.bind.annotation.ResponseBody;
  15. import org.springframework.web.multipart.MultipartFile;
  16.  
  17. import top.ytheng.demo.entity.JsonData;
  18.  
  19. @Controller
  20. @PropertySource({"classpath:application.properties"})
  21. public class FileController {
  22. @Value("${web.file.path}")
  23. private String filePath;
  24.  
  25. @RequestMapping(value="/api/v1/file")
  26. public Object index() {
  27. return "index";
  28. }
  29.  
  30. @RequestMapping("/upload")
  31. @ResponseBody
  32. public Object upload(@RequestParam("head_img") MultipartFile file, HttpServletRequest request) {
  33. //判断文件为空
  34. //file.isEmpty();
  35. //判断文件大小
  36. //file.getSize();
  37.  
  38. String name = request.getParameter("name");
  39. System.out.println("用户名:" + name);
  40. //获取文件名称
  41. String fileName = file.getOriginalFilename();
  42. System.out.println("上传的文件名称:" + fileName);
  43.  
  44. //获取文件的后缀名
  45. String suffixName = fileName.substring(fileName.lastIndexOf("."));
  46. System.out.println("上传文件后缀名:" + suffixName);
  47.  
  48. //文件上传后的路径
  49. fileName = UUID.randomUUID() + suffixName;
  50. System.out.println("新的文件名称:" + fileName);
  51. File dest = new File(filePath + fileName);
  52.  
  53. try {
  54. file.transferTo(dest);
  55. return new JsonData(0, null, fileName);
  56. } catch(IllegalStateException e) {
  57. e.printStackTrace();
  58. } catch(IOException e) {
  59. e.printStackTrace();
  60. }
  61.  
  62. return new JsonData(-1, "上传失败");
  63. }
  64. }

3.添加application.properties配置文件

  1. #自定义文件上传路径
  2. web.file.path=C:\\Users\\tianheng\\eclipse-workspace\\springboot-demo\\src\\main\\resources\\static\\images\\
  3.  
  4. #端口号
  5. server.port=8090

4.添加upload.html界面

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta name="keywords" content="keyword1,keyword2,keyword3">
  5. <meta http-equiv="Content-Type" content="text/html;charset=utf-8"/>
  6.  
  7. <script type="text/javascript" src="/js/test.js" ></script>
  8.  
  9. <title>Insert title here</title>
  10. </head>
  11. <body>
  12. <form enctype="multipart/form-data" method="post" action="/upload">
  13. 文件:<input type="file" name="head_img"/>
  14. 姓名:<input type="text" name="name"/>
  15. <input type="submit" value="上传"/>
  16. </form>
  17. </body>
  18. </html>

5.添加启动类

  1. package top.ytheng.demo;
  2.  
  3. import javax.servlet.MultipartConfigElement;
  4.  
  5. import org.springframework.boot.SpringApplication;
  6. import org.springframework.boot.autoconfigure.SpringBootApplication;
  7. import org.springframework.boot.web.servlet.MultipartConfigFactory;
  8.  
  9. @SpringBootApplication //等于下面3个
  10. //@SpringBootConfiguration
  11. //@EnableAutoConfiguration
  12. //@ComponentScan
  13. public class DemoApplication {
  14.  
  15. public static void main(String[] args) {
  16. SpringApplication.run(DemoApplication.class, args);
  17. }
  18.  
  19. //文件大小配置
  20. public MultipartConfigElement multipartConfigElement() {
  21. MultipartConfigFactory factory = new MultipartConfigFactory();
  22. //单个文件最大
  23. factory.setMaxFileSize("10240KB");
  24. //设置总上传数据总大小
  25. factory.setMaxRequestSize("102400KB");
  26. return factory.createMultipartConfig();
  27. }
  28. }

6.测试地址

  1. http://localhost:8090/upload.html

SpringBoot------文件上传的更多相关文章

  1. 补习系列(11)-springboot 文件上传原理

    目录 一.文件上传原理 二.springboot 文件机制 临时文件 定制配置 三.示例代码 A. 单文件上传 B. 多文件上传 C. 文件上传异常 D. Bean 配置 四.文件下载 小结 一.文件 ...

  2. 【SpringBoot】07.SpringBoot文件上传

    SpringBoot文件上传 1.编写html文件在classpath下的static中 <!DOCTYPE html> <html> <head> <met ...

  3. SpringBoot 文件上传临时文件路径问题

    年后放假回来,一向运行OK的项目突然图片上传不了了,后台报错日志如下: java.io.IOException: The temporary upload location [/tmp/tomcat. ...

  4. springboot文件上传下载简单使用

    springboot的文件上传比较简单 一.使用默认的Resolver:StandardServletMultipartResolver controller package com.mydemo.w ...

  5. springboot 文件上传大小配置

    转自:https://blog.csdn.net/shi0299/article/details/69525848 springboot上传文件大小的配置有两种,一种是设置在配置文件里只有两行代码,一 ...

  6. SpringBoot文件上传下载

    项目中经常会有上传和下载的需求,这篇文章简述一下springboot项目中实现简单的上传和下载. 新建springboot项目,前台页面使用的thymeleaf模板,其余的没有特别的配置,pom代码如 ...

  7. Springboot 文件上传(带进度条)

    1. 相关依赖 pom.xml <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http ...

  8. SpringBoot 文件上传、下载、设置大小

    本文使用SpringBoot的版本为2.0.3.RELEASE 1.上传单个文件 ①html对应的提交表单 <form action="uploadFile" method= ...

  9. SpringBoot文件上传异常之提示The temporary upload location xxx is not valid

    原文: 一灰灰Blog之Spring系列教程文件上传异常原理分析 SpringBoot搭建的应用,一直工作得好好的,突然发现上传文件失败,提示org.springframework.web.multi ...

  10. SpringBoot学习6:springboot文件上传

    1.编写页面uploadFile.html <!DOCTYPE html> <html lang="en"> <head> <meta c ...

随机推荐

  1. Jvm中时区设置方式

    Jvm中时区设置方式2018年08月08日 08:19:31 liumiaocn 阅读数:156更多个人分类: 编程语言版权声明:本文为博主原创文章,未经博主允许欢迎转载,但请注明出处. https: ...

  2. 快速排序算法(Quicksort)

    快速排序算法是对集合中元素进行排序最通用的算法,俗称快排,其算法的时间复杂度为O(nlgn),空间复杂度为O(1). 我们举例来对其算法思路进行理解,譬如数组 A = { 4, 8, 1, 2, 9, ...

  3. HTML Notes

    Label tag and input in form <form action=""> <label for="male">Male& ...

  4. webpack2--webpack 4.X 快速创建demo

    准备工作 1.新建文件夹:webpack-demo(下面我们简称该文件夹为根目录),在根目录下面建两个文件夹,分别为src和dist. 1).src文件夹:用来存放我们编写的javascript代码, ...

  5. combobox的值从主页面传递到子页面

    1.主页面传递参数 url: '@Url.Action("WaterLoad")' + '?year=' + year + '&fanwei=' + fanwei, 2.控 ...

  6. "iostat" On Linux

    CPU是一台电脑的大脑.所有的处理命令都运行在上面.I/O(输入/输出)同样扮演了一个重要角色.硬盘用于提供数据给处理器并保存CPU处理过的数据.一种衡量处理器和I/O利用率的方法是使用iostat命 ...

  7. Android中获取系统上安装的APP信息

    Version:0.9 StartHTML:-1 EndHTML:-1 StartFragment:00000099 EndFragment:00003259 Android中获取系统上安装的APP信 ...

  8. 贝塞尔曲线.简单推导与用opengl实现动态画出。

    在opengl中,我们可以用少许的参数来描述一个曲线,其中贝塞尔曲线算是一种很常见的曲线控制方法,我们先来看维基百科里对贝塞尔曲线的说明: 线性贝塞尔曲线 给定点P0.P1,线性贝塞尔曲线只是一条两点 ...

  9. Unity如何内置Visual Studio

    一.问题的起源 软件环境:Unity 2017.3.0f3,Visual Studio 2013 问题描述:在Unity中创建C#脚本后,准备双击打开进行编辑时,出现了Fatal Error. 二.问 ...

  10. JDBC排序数据实例

    在本教程将演示如何在JDBC应用程序中,从数据库表中查询数据记录,在查询语句中将使用asc和desc关键字按升序或降序对记录进行排序.在执行以下示例之前,请确保您已经准备好以下操作: 具有数据库管理员 ...