SpringBoot上传文件
SpringBoot单文件上传,多文件上传
环境/版本一览:
- 开发工具:Intellij IDEA 2020.2.3
- springboot:2.3.7.RELEASE
- jdk:1.8.0_211
- maven: 3.6.3
目录结构
1.搭建项目
1.1 先创建一个springboot工程加入web依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
1.2 在application.yml加入配置
spring:
servlet:
multipart:
max-request-size: 5GB # 上传文件总的最大值 默认10MB
max-file-size: 1GB #单个文件最大值 默认10MB
1.3 编写上传文件的接口
package com.niu.springbootuploadfile.controller;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;
import java.io.File;
import java.io.IOException;
/**
* @description: 上传文件控制器
* @author: nxq email: niuxiangqian163@163.com
* @createDate: 2020/12/19 4:09 下午
* @updateUser: nxq email: niuxiangqian163@163.com
* @updateDate: 2020/12/19 4:09 下午
* @updateRemark:
* @version: 1.0
**/
@RestController
public class UpLoadController {
@PostMapping("/upload")
public Object upload(@RequestParam("file")MultipartFile file){
return saveFile(file);
}
@PostMapping("/multiUpload")
public Object multiUpload(@RequestParam("file")MultipartFile[] files){
System.out.println("文件的个数:"+files.length);
for (MultipartFile f : files){
saveFile(f);
}
return "ok";
}
private Object saveFile(MultipartFile file){
if (file.isEmpty()){
return "未选择文件";
}
String filename = file.getOriginalFilename(); //获取上传文件原来的名称
String filePath = "/Users/laoniu/temp/";
File temp = new File(filePath);
if (!temp.exists()){
temp.mkdirs();
}
File localFile = new File(filePath+filename);
try {
file.transferTo(localFile); //把上传的文件保存至本地
System.out.println(file.getOriginalFilename()+" 上传成功");
}catch (IOException e){
e.printStackTrace();
return "上传失败";
}
return "ok";
}
}
1.4 创建上传文件的网页
在static目录下创建index.html,加入以下内容
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>上传文件</title>
</head>
<body>
<center>
<h3>上传单个文件</h3>
<form action="/upload" enctype="multipart/form-data" method="post">
<input type="file" name="file" required><br>
<input type="submit" value="上传单个文件">
</form>
<hr>
<h3>上传多个文件</h3>
<form action="/multiUpload" enctype="multipart/form-data" method="post">
<input type="file" name="file" required><br>
<input type="file" name="file" required><br>
<input type="file" name="file" required><br>
<input type="submit" value="上传多个文件">
</form>
</center>
</body>
</html>
注意:<input type="file" name="file"> 标签里的name属性file必须和 后端@RequestParam("file")里的file一致
2.启动测试
访问: http://localhost:8080/index.html
2.1 单个文件上传测试
上传成功
2.2 多个文件上传测试
多文件上传也ok
代码已经推送至github :https://github.com/NiuXiangQian/springboot-uploadfile
正文到此结束
相关文章
热门推荐
评论插件初始化中...