2017-12-27 566 views
0

我感興趣的是有一個按鈕,它從用戶的計算機上獲取圖片並將其上載到我的服務器上。Vaadin上傳功能

我設法解決服務器上傳部分,但我在處理用戶計算機的路徑時遇到困難。 Vaadin Upload不提供完整路徑,但我希望它是動態的。看文檔,他們使用一些臨時位置,但我不知道如何實現。

public OutputStream receiveUpload(String filename, 
             String mimeType) { 
     // Create upload stream 
     FileOutputStream fos = null; // Stream to write to 
     try { 
      // Open the file for writing. 
      file = new File("/tmp/uploads/" + filename); 
      fos = new FileOutputStream(file); 
     } catch (final java.io.FileNotFoundException e) { 
      new Notification("Could not open file<br/>", 
          e.getMessage(), 
          Notification.Type.ERROR_MESSAGE) 
       .show(Page.getCurrent()); 
      return null; 
     } 
     return fos; // Return the output stream to write to 
    } 

我期待的是,當文件選擇器關閉,我得到某種形式的文件路徑或處理的,所以我可以把它放在我的服務器上。

回答

1

filename參數中,您將獲得上傳文件的名稱。 但是文件的路徑不會發送到服務器,這是Web應用程序/ Web瀏覽器的限制之一。

隨着您使用的代碼,您將在服務器上的tmp文件夾中擁有上傳文件的副本。

無法通過Web瀏覽器直接訪問客戶端計算機上的文件。

+0

解決了它,它試圖上傳到/ tmp/uploads但沒有權限 –