上传图像并刷新img标记

时间:2016-09-27 15:28:37

标签: java spring jetty thymeleaf

我正在我的应用程序中使用Springboot和嵌入式服务器(Jetty)。

我想上传图片并重新加载我的html页面,以在img标签中显示新图片。

文件上传得很好并保存在我的应用程序的文件夹中。但是当我重新加载页面时,我无法看到我的新图像。

我的嵌入式服务器似乎无法看到我的新文件。当我重建我的项目时,我可以看到新文件。

如何在不重建项目的情况下自动刷新我的img标签

这是我的html页面

<img th:src="@{/images/scan/}+${signatureScannedImg}" style="margin-bottom: 30px"/>
          <form th:action="@{/upload-signature-scan}" th:method="post" enctype="multipart/form-data">
            <table>
              <tr><td><input type="file" name="file" /></td></tr>
              <tr><td><input type="hidden" id="scannedFile" name="scannedFile" value="signature" /></td></tr>
              <tr><td><input type="hidden" id="idClient" name="idClient" th:value="${clientView.id}" /></td></tr>
              <tr><td><input type="submit" value="Enregistrer" /></td></tr>
            </table>
          </form>

我的控制器方法是:

@RequestMapping(value = "/upload-signature-scan", method = RequestMethod.POST)
  public String handleFileUpload(
                                 @RequestParam("file") MultipartFile file,
                                 @RequestParam("idClient") Long idClient,
                                 @RequestParam("scannedFile") String  scannedFile,
                                 RedirectAttributes redirectAttributes) {
    Path rootLocation= Paths.get("src/main/resources/static/images/scan");
    try {
      Files.copy(file.getInputStream(), rootLocation.resolve("image.jpg"));
    } catch (IOException e) {
      e.printStackTrace();
    }

    redirectAttributes.addAttribute("id", idClient);
    redirectAttributes.addFlashAttribute("id", idClient);
   redirectAttributes.addFlashAttribute("signatureScannedImg", "image.jpg");
    return "redirect:/client/{id}/details";
  }

1 个答案:

答案 0 :(得分:-1)

我在这里找到了解决方案:https://spring.io/guides/gs/uploading-files/

谢谢