在Web开发中,文件上传是一个常见的需求,无论是用户头像、个人简历还是其他类型的文件,都需要通过前端页面将文件发送到服务器进行处理,本文将介绍如何使用Java实现一个简单的文件上传功能。
1、环境准备
我们需要准备一个Java Web项目,这里我们使用Maven作为项目管理工具,Spring Boot作为Web框架,Thymeleaf作为模板引擎,在pom.xml文件中添加相关依赖:
<dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId> </dependency> </dependencies>
2、创建文件上传控制器
创建一个名为FileUploadController的控制器类,用于处理文件上传请求,在这个类中,我们需要定义一个方法来处理POST请求,该方法接收一个MultipartFile类型的参数,表示上传的文件,我们需要定义一个方法来处理GET请求,用于显示文件上传表单。
import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import java.io.File; import java.io.IOException; @Controller public class FileUploadController { private static final String UPLOAD_DIR = "uploads/"; @GetMapping("/") public String uploadForm() { return "upload"; } @PostMapping("/upload") public String uploadFile(@RequestParam("file") MultipartFile file) { if (file.isEmpty()) { return "redirect:/"; } try { saveUploadedFile(file); return "redirect:/success"; } catch (IOException e) { e.printStackTrace(); } return "redirect:/"; } private void saveUploadedFile(MultipartFile file) throws IOException { if (!file.isEmpty()) { byte[] bytes = file.getBytes(); Path path = Paths.get(UPLOAD_DIR + file.getOriginalFilename()); Files.write(path, bytes); } } }
3、创建文件上传表单页面
在项目的templates文件夹下创建一个名为upload.html的HTML文件,用于显示文件上传表单,在这个文件中,我们需要使用form标签来创建一个表单,表单的enctype属性设置为"multipart/form-data",表示我们要提交的数据是文件,我们需要使用input标签来创建一个文件输入框,设置name属性为"file",表示我们要上传的文件,我们需要使用submit按钮来提交表单。
<!DOCTYPE html> <html xmlns:th="http://www.thymeleaf.org"> <head> <meta charset="UTF-8"> <title>文件上传</title> </head> <body> <h1>文件上传</h1> <form th:action="@{/upload}" method="post" enctype="multipart/form-data"> <input type="file" name="file"> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <br/> <input type="submit" value="上传"> </form> </body> </html>
4、运行项目并测试文件上传功能
运行Spring Boot项目,访问http://localhost:8080/,可以看到文件上传表单,选择一个文件并点击上传按钮,如果文件上传成功,页面将跳转到success页面,此时,我们可以在项目的uploads文件夹下看到刚刚上传的文件。
还没有评论,来说两句吧...