创建Springboot项目,需要有spring-boot-starter-web支持就可以
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
创建页面:
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-type" content="text/html; charset=UTF-8">
<title>单文件上传</title>
</head>
<body>
<form method="post" action="/upload" enctype="multipart/form-data">
<p><input type="file" name="file"></p>
<p><input type="submit" value="提交"></p>
</form>
</body>
</html>
创建控制器:
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.multipart.MultipartFile;
import java.io.File;
import java.io.IOException;
/**
* @Description
* @Author Johnny
*/
@Controller
public class UploadController {
private static final Logger LOGGER = LoggerFactory.getLogger(UploadController.class);
@GetMapping("/upload")
public String upload() {
return "upload";
}
@PostMapping("/upload")
@ResponseBody
public String upload(@RequestParam("file") MultipartFile file) {
if (file.isEmpty()) {
return "上传失败,请选择文件";
}
String fileName = file.getOriginalFilename();
String filePath = "d:/dir/";
File dest = new File(filePath + fileName);
try {
file.transferTo(dest);
LOGGER.info("上传成功");
return "上传成功";
} catch (IOException e) {
LOGGER.error(e.toString(), e);
}
return "上传失败!";
}
}
配置文件书写,这里默认可以不配置,不配置的话,就是不限制文件的大小
# 单个文件的最大值
spring:
servlet:
multipart:
max-file-size: 1MB
# 上传文件总的最大值
max-request-size: 1MB
实现上传页面:
上传完成:
然后你去对应的磁盘路径中就能看到该文件。success
想要使用springboot项目,映射磁盘的某个地址的文件夹位置,从而访问该文件夹下的内容:
首先,创建一个配置类:自定义类,继承WebMvcConfigurerAdapter
重写里面的addResourceHandlers方法
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
@Configuration
public class WebMvcConfig extends WebMvcConfigurerAdapter {
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
//文件磁盘图片url 映射
//配置server虚拟路径,handler为前台访问的目录,locations为files相对应的本地路径
registry.addResourceHandler("/dir/*").addResourceLocations("file:D:\\dir\\");
}
}
第一个参数:是你需要映射的url访问的地址。
第二个参数:是你具体的物理磁盘路径地址。
最后实现访问:
完成访问,恭喜你成功~
最后附上Gitee源码,提供给大家参考:
SpringBoot文件上传案例: SpringBoot文件上传案例https://gitee.com/vipzyj/spring-boot-file-upload-case.git如果对你有所帮助,请:点赞、留言。