2017-05-04 95 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