2017-05-04 222 views
0

任何人都遇到過這個問題,上傳的文件名看起來有點奇怪。Vaadin Plupload上傳錯誤的文件名

我正在嘗試這個Vaadin Plupload插件,這是一個非常不錯的插件。但是,它會上傳錯誤的文件名。

//add file uploaded handler 
    uploader.addFileUploadedListener(new Plupload.FileUploadedListener() { 

     @Override 
     public void onFileUploaded(PluploadFile file) { 
      File uploadedFile = file.getUploadedFile(); 
      System.out.println("This file was just uploaded: " 
       + uploadedFile.getAbsolutePath()); 
     } 
    }); 

,這讓我這種文件名的o_199r9ll9e1g6q15vmrdj13l51rdbl .TXT ...我怎麼得到normal.txt文件名,而不是這種怪異的文件名。

+0

這個插件,但我會認爲所提供的有效載荷被上傳到一個臨時文件具有唯一生成的名稱,然後您可以隨意移動/重命名。他們的[github自述文件頁面](https://github.com/eXsio/vaadin-plupload)似乎也提供了相同的內容(滾動到「我正在上傳文件test.mp3 .....'的部分) 。如果向下滾動一下,您應該看到一個選項,使用「PluploadManager」指定一個文件夾,這樣可能會有不同的表現。不幸的是,到目前爲止,我沒有時間檢查消息來源並確認2個假設中的任何一個... – Morfic

+0

感謝您的建議。當然,我讀過那一行,但是'PluploadManager'沒有不同的行爲並指定了文件夾,它仍然會生成該隨機文件名。 – AppKeto

+0

這是什麼意思在JAVA代碼? 「正如你所看到的,這個字段是參數化的,所以你可以使用它來獲得'''java.io.File''或''byte []'''作爲字段的值/類型。 「 – AppKeto

回答

0

終於解決了這個問題,這裏是這個特定issue從Vaadin網站上的討論:我沒有用過

Path myPath = Paths.get(YOUR_UPLOAD_DIRECTORY + file.getId() + (FilenameUtils.getExtension(file.getName()).isEmpty() 
         ? "" : ('.' + FilenameUtils.getExtension(file.getName())))); 
       Path rF = Paths.get(YOUR_UPLOAD_DIRECTORY + file.getName()); 
       try { 
        Files.move(myPath, rF, StandardCopyOption.REPLACE_EXISTING); 
        //refresh your tree table container 
       } catch (IOException e) { 
        log.error("Unable to rename file" + file.getName(), e); 
       } 
+0

很高興聽到您找到問題的原因。你可以通過解釋你如何診斷它,特別是當別處看到這個問題時能夠找出這個問題,從而使你的答案對未來的讀者更有幫助。 –

+0

感謝您的指針。我正在用Vaadin論壇鏈接更新答案。 – AppKeto