先在src/main/resources下新建一个static目录用以存放html页面,简单的html页面如下

 <!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>SpringBoot文件上传</title>
</head>
<body>
<form action="FileUploadController" method="post" enctype="multipart/form-data">
上传文件:
<input type="file" name="filename" />
<br />
<input type="submit" />
</form>
</body>
</html>

注意一点时,form表单的提交方法为 method = "post"

然后就是Controller类的编写,如下:

 package com.example.uploadfile.springbootupload.cont;

 import java.io.File;
import java.util.HashMap;
import java.util.Map; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile; /**
*
* @author SpringBoot文件上传
*/
@RestController // 这个类下所有的方法的返回值都会自动进行json格式的转换
public class FileUploadController {
/*
* 处理文件上传
*/ // 路由映射
@RequestMapping("/FileUploadController")
public Map<String, Object> fileUpload(MultipartFile filename) throws Exception { // 这里的MultipartFile参数的命名最好和html中的一样(也就是filename)免去转换操作
System.out.print(filename.getOriginalFilename()); // 打印文件的原始名称
// 将文件进行保存
filename.transferTo(new File("e:/" + filename.getOriginalFilename()));
Map<String, Object> map = new HashMap<>(); // 处理异常
map.put("msg", "ok");
return map; } }

关于这个Controller类,上传文件成功后在控制台打印文件名,然后再将该文件保存至E盘

接着就是启动类的编写,如下:

package com.example.uploadfile.springbootupload;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication; /**
*
* @author SpringBoot文件上传的启动类
*/
@SpringBootApplication
public class AppFile { public static void main(String[] args) {
// TODO Auto-generated method stub
SpringApplication.run(AppFile.class, args);
} }

需要注意一点的是,“Make sure that your main class is in a root package above other classes.”

然后构建运行就可以执行上传文件的操作了;

但是当你上传的文件大小超过10MB时,就会出现以下的错误。

由控制台的输出可知,上传的文件超过了默认大小,所以要在application.properties中修改一下配置信息;

一开始参照其他博客的修改是这样的

单个文件最大的大小
spring.http.multipart.maxFileSize=200MB
上传的总文件的大小
spring.http.multipart.maxRequestSize=200MB

但是还是出错,后来在spring官方指导上看到这个:

就试着修改成以下的这样

spring.servlet.multipart.maxFileSize=200MB
spring.servlet.multipart.maxRequestSize=200MB

再次运行时就阔以了!

而且Spring官网上也提供了很详细的指导!

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的文件上传功能

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

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

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

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

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

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

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

  9. SpringBoot实现文件上传

    前言参考:快速开发第一个SpringBoot应用 这篇文章会讲解如何使用SpringBoot完成一个文件上传的过程,并且附带一些SpringBoot开发中需要注意的地方 首先我们写一个文件上传的htm ...

随机推荐

  1. show processlist命令与kill 线程

    show [full] processlist show processlist显示正在运行的线程.如果有process权限,则可以查看所有正在运行的线程.否则,只能看到自己的线程.如果不使用full ...

  2. php定界符<<<EOF讲解

    Heredoc技术.可用来输出大段的html和javascript脚本 1.PHP定界符的作用就是按照原样,包括换行格式什么的,输出在其内部的东西: 2.在PHP定界符中的任何特殊字符都不需要转义:  ...

  3. $ORACLE_HOME/rdbms/demo示例安装

    需要手工安装p13390677_112040_Linux-x86-64_6of7.zip,或者win32_11gR2_examples.zip.默认不包含. 从Oracle Database 12c ...

  4. maven-shade-plugin插件

    maven-shade-plugin主要是maven-assembly-plugin的后继者,用来将一个自启动jar项目的依赖打包到一个大的jar中,比如dubbo就是这么做的.具体可参考http:/ ...

  5. rabbitmq集群故障恢复详解

    RabbitMQ的mirror queue(镜像队列)机制是最简单的队列HA方案,它通过在cluster的基础上增加ha-mode.ha-param等policy选项,可以根据 需求将cluster中 ...

  6. 第五章 CSS常用属性笔记

    1. span标签 突显,强调局部文字的作用. 2.字体样式 font-size: 字体大小 font-style:normal,italic(倾斜) font-weight:normal,bold( ...

  7. 前后台分离开发--文件上传与下载,cookie,session

    一.前后台分离开发的概念 ''' 1. 前台页面运行在前台服务器上,负责页面的渲染(静态文件的加载)与转跳 2. 后台代码运行在后台服务器上,负责数据的处理(提供数据请求的接口) ''' #如果没有前 ...

  8. Spring 学习——Bean容器

    Bean容器初始化 基础 org.springframework.beans org.springframework.context BeanFactory提供配置结构和基本功能,加载并初始化Bean ...

  9. Bootstrap3基础 input-group-btn 按钮与输入框 横向组合

      内容 参数   OS   Windows 10 x64   browser   Firefox 65.0.2   framework     Bootstrap 3.3.7   editor    ...

  10. ubuntu18.04无法安装libesd0-dev【学习笔记】

    执行如下命令安装: sudo apt-get install libesd0-dev 却报了这个错误: 解决办法: sudo vim /etc/apt/sources.list //在行尾添加如下两行 ...