簡體   English   中英

上傳后的Spring Boot加載映像

[英]Spring boot load image after upload

我能夠將圖像上傳到服務器,並且可以在/static/images/gallery路徑中找到我的圖像。 現在,當我嘗試加載上傳的圖像時,應用程序未顯示主題。 僅在應用程序重新啟動之后。

靜態目錄在啟動時加載。 因此,當您上載圖像或對靜態文件夾下的任何文件或文件夾進行更改時,由於已初始化ApplicationContext,因此不會反映出來。

要上傳動態圖片,您可以按照以下步驟操作:

步驟1:在Static文件夾之外創建一個目錄,說我在服務器上創建的媒體

/var/www/html/myapp/media

步驟2:在媒體目錄中上傳文件。

步驟3:實施WebMvcConfigurer。

@Configuration
public class AdditionalResourceWebConfiguration implements WebMvcConfigurer {

  @Override
  public void addResourceHandlers(final ResourceHandlerRegistry registry) {
    registry.addResourceHandler("/media/**").addResourceLocations("file:media/");
  }
}

上傳后,您可以動態訪問文件http:// localhost:8080 / media / filename.jpg

我有同樣的問題! 因為靜態目錄是在啟動時加載的! 您必須將上傳路徑放在資源之外! 將此項目名稱命名為“ Demo”。 我認為您的目錄是這樣的:

Demo
  ∟ src
    ∟ main
      ∟ java
      ∟ resources
        ∟ static
          ∟ images
            ∟ gallery

不要將目錄上傳到資源中! 您可以這樣:

@Configuration
public class AdditionalResourceWebConfiguration implements WebMvcConfigurer {

  @Override
  public void addResourceHandlers(final ResourceHandlerRegistry registry) {
    registry.addResourceHandler("/upload/**").addResourceLocations("file://" + System.getProperty("user.dir") + "/src/main/upload/");
  }
}

文件:您的固定路徑!

現在您的目錄如下:

    Demo
      ∟ src
        ∟ main
          ∟ java
          ∟ resources
            ∟ static
              ∟ images
                ∟ gallery
          ∟ upload
            ∟ static
              ∟ images
                ∟ gallery

好! 重新啟動您的spring boot! 嘗試上傳一些圖片! 您可以在http:// localhost:80 / upload / static / images / gallery / demo.jpg中看到這些圖像

只需考慮一下戰爭,罐子,耳朵->簡短地說->部署的Java應用程序是歸檔文件,並且歸檔文件在創建后不可更改。 在我們的例子中,這意味着當您在路徑中保存任何資源時,它正在加載到尚未構建的應用程序路徑(項目)...但是您嘗試獲取資源的應用程序是構建的不存在的存檔文件請求的資源然而。 重新啟動應用程序后,將再次構建並創建新的存檔文件->這就是為什么現在可以看到它的原因;)))。 解決方案如之前回答->

  1. 只是將資源保存在項目之外
  2. 在此路徑上授予對您的應用程序的讀/寫權限。
  3. 使用絕對路徑。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM