SpringBoot简单实现文件上传
作者:散一世繁华,颠半世琉璃 发布时间:2021-09-04 12:24:52
标签:SpringBoot,文件,上传
前言:
这里给大家介绍如何在SpringBoot项目中实现文件上传功能!
1.创建SpringBoot项目
打开IDEA,点击文件,选择新建项目,点击Spring Initializr,然后根据自己的需求设置项目名称,位置以及JDK。这里需要注意,服务器的URL最好设置为阿里云服务器,这样可以使得项目加载地更快。
点击下一步后,勾选Spring Web依赖与Thymeleaf模板引擎后点击完成即可。
2.修改application.properties配置文件
因为SpringBoot项目中默认文件的最大上传大小为1MB,而1MB的上传容量无法满足我们开发工程中的文件上传需求,因此我们需要修改配置文件。
# 设置上传文件的大小为10MB
spring.servlet.multipart.max-file-size=10MB
3.编写控制器UserController类
这里需要注意的是,使用MultipartFile类来处理接受前端上传的文件,通过它可以获取文件的名称,类型,大小等等信息。
package com.xing.springbootfileupload.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.multipart.MultipartFile;
import java.io.File;
import java.io.IOException;
@Controller
public class UserController {
@RequestMapping("/")
public String welcome(){
return "index";
}//这里相当于设置欢迎页
@RequestMapping("/upload")
@ResponseBody
public String upload(String name, MultipartFile phone) throws IOException {//实现文件上传
System.out.println("上传的用户名为:"+name);
System.out.println("图像的原始名称为:"+phone.getOriginalFilename());
System.out.println("上传文件的类型为:"+phone.getContentType());
saveFile(phone);
return "文件上传成功";
}
public void saveFile(MultipartFile phone) throws IOException {//将文件保存到本地
String dir="这里写自己要保存图片的绝对路径";//建议这里写resources目录的绝对路径
File path=new File(dir+"/upload/");
if(!path.exists()){//如果当前目录不存在
path.mkdir();
}
File file=new File(dir+"/upload/"+phone.getOriginalFilename());
phone.transferTo(file);//将此图像保存到file本地
}
}
4.编写前端页面index.html
编写表单的时候要注意,我们一定要写enctype=“multipart/form-data” 来控制文件的编码,否则文件会上传失败!
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>欢迎页</title>
</head>
<body>
<h1>请自行上传用户名与图像</h1>
<hr>
<form enctype="multipart/form-data" method="post" th:action="@{/upload}">
<p>用户名:<input type="text" name="name"></p>
<p>用户名:<input type="file" name="phone"></p>
<input type="submit" value="上传">
</form>
</body>
</html>
5.效果展示
直接运行SpringBoot启动类,运行结果如下所示:
选择合适的用户名与图片文件后,点击上传即可看见浏览器显示上传成功!
并且可以在后台看见上传文件的相关信息。
来源:https://blog.csdn.net/qq_51447436/article/details/126626350


猜你喜欢
- 本文为大家分享了javaweb实现app扫码登录的具体代码,供大家参考,具体内容如下1.web页面主动向服务器索要一张由服务器生成包含维一标
- 前言开篇一个例子,我看看都有谁会?如果不会的,或者不知道原理的,还是老老实实看完这篇文章吧。@Slf4j(topic = "c.V
- Android MTU 值修改的实例详解通信术语 最大传输单元(Maximum Transmission Unit,MTU)是指一种通信协议
- 微信开放平台 : https://open.weixin.qq.com/一、准备工作 : 1. Android Studio环境下:在bui
- 调用海康工业相机SDK采集图像并在Halcon窗口中显示最近做项目需要对海康相机进行二次开发,现将所学进行整理。开发环境 &nbs
- 一、在学习枚举之前,首先来听听枚举的优点。1、枚举能够使代码更加清晰,它允许使用描述性的名称表示整数值。2、枚举使代码更易于维护,有助于确保
- JetpackJetpack,我觉得翻译为“飞行器”更好听,因为Google针对编程历史乱象,整理出
- 一.先说结论针对任何一个代码记录都进行Revert Commit操作:①不管此记录是commit未push,还是已经push过;②不管此记录
- XSS ,全名:cross-site scripting(跨站点脚本),是当前 web 应用中最危险和最普遍的漏洞之一。攻击者尝试注入恶意脚
- 找不同给定两个字符串 s 和 t ,它们只包含小写字母。字符串 t 由字符串 s 随机重排,然后在随机位置添加一个字母。
- 目前为止,许多编程语言和工具都包含对正则表达式的支持,C#也不例外,C#基础类库中包含有一个命名空间(System.Text.Regular
- 1.JVM Heap(堆)溢出:java.lang.OutOfMemoryError: Java heap spaceJVM在启动的时候会自
- 一. MediaPlayer 状态机 介绍Android MediaPlayer 状态即图例 :1. Idle (闲置) 状态 和 End
- 实践过程效果代码public partial class frmSend : Form{ public frmSe
- 本文实例为大家分享了C#使用Socket实现本地多人聊天室的具体代码,供大家参考,具体内容如下【脚本一:Server端】使用本机地址:127
- 前言在上网的时候我们常常遇到文件上传的情况,例如上传头像、上传资料等;当然除了上传,遇见下载的情况也很多,接下来看看我们 servlet 中
- 本文实例为大家分享了C#实现网页画图的具体代码,供大家参考,具体内容如下代码贴着保存下using System;using System.C
- 导言目前截屏的方法很多,root不适用,要么其他方法就是有局限性,而其中官方给出的方案最好—MediaProjection介绍Android
- 先看看电影票在线选座功能实现的效果图:界面比较粗糙,主要看原理。这个界面主要包括以下几部分1、座位 2、左边的排数 3、左上方的缩略图 4、
- 前言关于android的volley封装之前写过一篇文章,见链接(https://www.jb51.net/article/155875.h