创建一个Controller用于处理文件上传和读取操作
java
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
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.multipart.MultipartFile;
import java.io.IOException;
import java.io.InputStream;
@Controller
public class FileUploadController {
@GetMapping("/upload")
public String showUploadForm() {
return "upload"; // 返回上传页面
}
@PostMapping("/upload")
public String uploadFile(@RequestParam("file") MultipartFile file, Model model) {
if (file.isEmpty()) {
model.addAttribute("message", "请选择要上传的文件");
return "uploadResult"; //返回上传结果
}
try {
// 获取上传文件的原始文件名
String fileName = file.getOriginalFilename();
// 读取上传文件的内容
byte[] content = file.getBytes();
String fileContent = new String(content);
model.addAttribute("fileName", fileName);
model.addAttribute("fileContent", fileContent);
} catch (IOException e) {
model.addAttribute("message", "文件处理失败: " + e.getMessage());
}
return "uploadResult"; //返回上传结果
}
}
创建上传页面
在src/main/resources/templates
目录下创建upload.html
,用于文件上传。
html
<!DOCTYPE html>
<html>
<head>
<title>文件上传</title>
</head>
<body>
<h2>文件上传</h2>
<form action="/upload" method="POST" enctype="multipart/form-data">
<input type="file" name="file">
<br>
<input type="submit" value="上传">
</form>
</body>
</html>
创建结果显示页面
在src/main/resources/templates
目录下创建uploadResult.html
,用于显示上传文件的结果。
html
<!DOCTYPE html>
<html>
<head>
<title>上传结果</title>
</head>
<body>
<h2>上传结果</h2>
<p>文件名: <span th:text="${fileName}"></span></p>
<p>文件内容:</p>
<pre><span th:text="${fileContent}"></span></pre>
</body>
</html>
浏览器访问
访问地址:http://localhost:8080/upload
选择文件-点击上传
显示结果
地址:http://localhost:8080/upload
选择文件-点击上传
[外链图片转存中...(img-LVXN4BMJ-1692931342426)]
显示结果