java Spring引导和thymeleaf上载和显示图像
我正在用Thymeleaf制作一个简单的spring boot应用程序。我有一个上传图像的控制器,它保存在项目文件夹上传中。请有人向我解释一下,上传后如何立即显示?我应该使用@PostMapping还是仅仅使用一些Thymeleaf标签
我的控制器类
@Controller
public class UploadFileController {
public static String uploadDirectory = System.getProperty("user.dir") + "/uploads";
@RequestMapping("/")
public String uploadPage(Model model) {
return "uploadview";
}
@RequestMapping("/upload")
public String upload(Model model, @RequestParam("files")MultipartFile[] files) {
StringBuilder fileNames = new StringBuilder();
for(MultipartFile file : files) {
Path fileNameAndPath = Paths.get(uploadDirectory, file.getOriginalFilename());
fileNames.append(file.getOriginalFilename());
try {
Files.write(fileNameAndPath, file.getBytes());
} catch (IOException e) {
e.printStackTrace();
}
}
model.addAttribute("msg", "Uploaded files: " + fileNames.toString());
return "uploadstatusview";
}
更新 我正在添加屏幕截图,看看它应该是什么样子
- 选择文件
- 选择的文件,例如test1。png-上传文件
- 而不是在另一个带有上传端点的html模板上发送给我。到目前为止,它正在发挥作用。图片它保存在项目中,但现在我想看到这张图片,就像它在屏幕截图上一样 want it to be like that
# 1 楼答案
如果我理解正确,您希望通过请求在单独的url获取新上传的图像。您可以在处理上载时将图像存储到列表或队列中,然后根据请求为列表中存储的每个图像编译模板
您的模板可能如下所示: