SpringBoot 实现文件上传|学习笔记

简介: 快速学习 SpringBoot 实现文件上传

开发者学堂课程【SpringBoot 实战教程 SpringBoot 实现文件上传】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/651/detail/10808


SpringBoot 实现文件上传


1、首先需要依赖 web 包在依赖它时文件上传的架包就自动依赖了页面的处理使用 thymeleaf 模板加上依赖一共是两个依赖把依赖放到工程中写好启动类导入这是架包的处理

<!--springbootweb支持-->

<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-web</artifactId>

</dependency>

<!--thymeleaf模板依赖-->

<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-thymeleaf</artifactId>

</dependency>

2、如果想要控制上传文件的大小可以在全局配置文件中上传以下两个配置

multipart.maxFileSize=500Mb  上传单个文件的大小最大是500mb

multipart.maxRequestSize=500Mb上传所有文件的总大小

创建全局配置文件,application.properties

3、做一个实现上传的页面用的是 thymeleaf 模版在 resources 下创建 templates 文件夹创建 html 页面

< !DOCTYPE html>

<html>

<head>

<meta charset= "UTE-8">< /meta>

<title>文件上</title>

</head>

<body>

<h2>文件上</h2>

<hr/>

< formmethod= "POST" enctype= "multipart/form-data" action="/upload">页面里面写一个表单提交方式是 post注意 enctype因为是上传所以 enctype 不能使用默认的要使用 multipart/form-data

<p>

文件<input type="file" name="file" /> file类型

</p>

<p>

<input type= "submit" value="上" />上传

</p>

</ form>

</body>

</html>

4、创建 controller命名为 UploadController。

加注解写功能

@Controller

public class UploadController {

@Reques tMapping (value="/upload" , method=RequestMe thod. POST)因为上传是 post 方式所以要进行请求方式首先指定请求路径是 upload请求方式是 method

@ResponseBody 上传成功或者失败的字符串

public string uploadFile (MultipartFile file,HttpServletRequestrequest)得到用户选择上传的文件name叫file名字要和表单的名字相同就能够得到用户上传的文件

{

Try{ 实现上传

//创建图片或文件在服务器端的存放路径

创建 webpp 文件夹希望用户上传的文件放在 upload 文件夹下需要创建 upload 文件夹首先需要得到 webpp 的路径在它下面再创建 upload 文件夹这时需要用 HttpServletRequest request 对象

String dir=request.getServletContext().getRealPath(" /upload") ;得到绝对路径现在 upload 路径不存在所以需要创建

File fileDir=newFile (dir) ;

if(! fileDir .exists () )

fileDir .mkdirs () ;

/ /生成文件在服务器端存放的名字要保证不能重名

//首先得到用户上传文件的后缀就是扩展名再生成不重复的名字

代表用户上传的文件上传文件原始的名字原始的名字再去截取即可截取的是扩展名所以从点后面开始截取即可

String fileSuffix=file.getOriginalFilename (). substring (file.getOriginalFilename () . lastIndexOf ("."));

//生成文件名

StringfileName=UUID. randomUUID() . toString() +fileSuffix;

//封装 file 对象filedir 代表 upload 的绝对路径

File files =newFile(fileDir+‘’/‘’+fileName)

//上传

file. transferTo (files)

}catch ( Exceptione) {

e.printStackTrace () ;

Return’’上传失败’’;如果发生异常说明上传失败

}

Return’’上传成功’’;

}

}

5、访问 upldad.html 页面但是这个页面不能直接访问因为它在 templates 下写一个 controller通过 controller 跳转到这个页面

@RequestMapping ("/ index")

PublicString toUpload()

{

return"upload";

}

6、进行包的扫描在启动类中进行扫描,controller

@SpringBootApplication(scanBasePackages="com.qi anfeng")

7、启动先访问 index 的 controller因为需要显示页面在页面上选择上传的文件所以请求路径是 index

localhost:8080/index

image.png

这就是 html 页面选择要上传的文件

image.png

点击上传显示上传成功

image.png

刷新可以看到服务器端生成一个文件夹名字是用 uid 生成的

image.png

这就是在 springboot 中如何实现文件的上传

相关文章
|
9月前
|
存储 安全 Java
Spring Boot整合Spring Security--学习笔记
Spring Boot整合Spring Security--学习笔记
121 1
|
JSON 前端开发 Java
【SpringBoot学习笔记 十一】深入理解SpringBoot异常处理
【SpringBoot学习笔记 十一】深入理解SpringBoot异常处理
492 0
|
存储 安全 算法
Java:SpringBoot整合Spring Security实现认证与授权学习笔记
Java:SpringBoot整合Spring Security实现认证与授权学习笔记
786 0
Java:SpringBoot整合Spring Security实现认证与授权学习笔记
|
Dubbo Java 测试技术
【SpringBoot学习笔记 十二】SpringBoot异步任务、定时任务、邮件任务
【SpringBoot学习笔记 十二】SpringBoot异步任务、定时任务、邮件任务
164 0
|
前端开发 Java 开发者
【SpringBoot学习笔记 九】SpringBoot定制整合Thymeleaf及页面国际化(下)
【SpringBoot学习笔记 九】SpringBoot定制整合Thymeleaf及页面国际化(下)
229 0
|
移动开发 前端开发 JavaScript
【SpringBoot学习笔记 九】SpringBoot定制整合Thymeleaf及页面国际化
【SpringBoot学习笔记 九】SpringBoot定制整合Thymeleaf及页面国际化
129 0
|
JSON Java 应用服务中间件
SpringBoot 学习笔记之 “异常处理”
SpringBoot 学习笔记之 “异常处理”
|
Java
java202304java学习笔记第五十八天员工管理-Aop基础-springboot配置优先级2
java202304java学习笔记第五十八天员工管理-Aop基础-springboot配置优先级2
101 0
|
Java
java202304java学习笔记第五十八天员工管理-Aop基础-springboot配置优先级1
java202304java学习笔记第五十八天员工管理-Aop基础-springboot配置优先级1
78 0
java202304java学习笔记第五十八天员工管理-springboot-自动配置概述
java202304java学习笔记第五十八天员工管理-springboot-自动配置概述
95 0