介绍
Spring Boot 是构建数千个 Servlet Web 应用程序的首选框架之一。同时,Spring Boot 集成了所有必需的控件,包括 Servlet API,WebSocket,Jackson,Validation,HttpMessageConverters 等。我们可以非常容易地在 Spring Boot 应用程序中扩展或注入新功能。
在本文中,我们将要讲解如何在 Spring Boot 中实现文件上传。该实现方法基于 Spring Boot 2.x 版本。
实现
第一步:添加文件上传依赖
我们需要添加 Apache 文件上传组件到 Spring Boot 项目中。编辑 pom.xml 文件并添加如下依赖
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.3.2</version>
</dependency>
第二步:编写控制器类
我们需要创建一个控制器类,用于接收文件上传的请求,代码如下:
@Controller
public class FileUploadController {
@GetMapping("/")
public String index() {
return "upload";
}
@PostMapping("/upload")
public String upload(@RequestParam("file") MultipartFile file) {
if (file.isEmpty()) {
return "上传失败,请选择文件";
}
String fileName = file.getOriginalFilename();
String filePath = "D:\\files\\";
File dest = new File(filePath + fileName);
try {
file.transferTo(dest);
return "上传成功";
} catch (IOException e) {
e.printStackTrace();
}
return "上传失败!";
}
}
第三步:编写上传页面模板文件
我们需要创建一个上传页面模板文件,客户端将通过它向服务器提交文件。下面是一个示例的上传页面模板文件,其中包含上传表单和上传进度条等。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
</head>
<body>
<form method="post" action="/upload" enctype="multipart/form-data">
<div class="form-group">
<input type="file" name="file" id="file">
</div>
<button type="submit" class="btn btn-primary">上传文件</button>
</form>
</body>
</html>
第四步:测试上传
我们可以通过浏览器或者Postman来测试上传,这里演示使用Postman。
首先启动Spring Boot应用程序。接着在Postman中选择POST请求,然后指定请求的URL为 http://localhost:8080/upload。在Body选项卡中选择"form-data",并添加"key-value"对,其中key必须为"file",其余文件使用multipart/form-data格式上传。
第五步:运行并测试
启动Spring Boot应用程序。打开浏览器,在地址栏中输入http://localhost:8080,我们将会看到一个包含文件上传控件的页面。我们可以通过它来测试文件上传功能。
示例1
本示例是一个基于Spring Boot的基本Web应用程序,这个程序包括一个控制器类,该控制器类实现了上传文件的功能。有关该程序的完整源代码,请参阅本示例的 GitHub 存储库。
示例2
下面是一个带有进度条的上传页面的示例,这个页面基于 Spring Boot 和 Thymeleaf MVC 框架构建。点击这里查看完整的源代码。
结论
在本文中,我们学习了如何在 Spring Boot 中实现文件上传。我们添加了文件上传依赖、编写了控制器类、编写了上传页面模板文件并进行了测试,最后演示了两个基于 Spring Boot 构建的示例。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:spring boot实现文件上传 - Python技术站