在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文件夹下看到刚刚上传的文件。



还没有评论,来说两句吧...