2016-03-29 217 views
0

Vaadin非常非常新。通过研究Github和其他文档,我正在使用Spring-security,Vaadin,Maven来设置项目。文件上传和下载vaadin

我用spring安全项目创建了样本vaadin-maven。现在我得到登录页面,然后在suucessful登录后,得到一些MainView.java。

我正在尝试更改上传的.xls文件并读取该文件并执行一些功能,然后下载弹出窗口。

我按照http://demo.vaadin.com/sampler/#ui/data-input/other/upload,但错误。无法重现我的输出。现在,我能够使用路径读取文件“final String FILE_PATH =”F://input.xls“;”但是,我需要选择上传文件,然后使用该文件获得更多功能。

功能完成后,我需要下载该文件。

请建议我如何浏览文件并上传并使用上传的文件进行一些读写操作,然后下载Vaadin。

我已经不眠之夜了。请建议我怎样才能出来这个。 这是我的代码:

@Component 
@Scope("prototype") 
@VaadinView(RoleAdminView.NAME) 
@Secured("ROLE_ADMIN") 
public class RoleAdminView extends Panel implements View 
{ 
    public static final String NAME = "role_admin"; 

@PostConstruct 
public void PostConstruct() 
{ 
    LoggerFactory.getLogger(this.getClass()).debug("POST"); 
    setSizeFull(); 
    VerticalLayout layout = new VerticalLayout(); 
    layout.setSpacing(true); 
    layout.setMargin(true); 
    layout.addComponent(new Button()); 
    layout.addComponent(new Label("ROLE_ADMIN")); 
    layout.addComponent(new Link("Go back", new ExternalResource("#!" + 
    MainView.NAME))); 

    setContent(layout); 
    } 

    @Override 
    public void enter(ViewChangeListener.ViewChangeEvent event) 
     { 
    } 
    } 

非常感谢您提前。希望你们理清我的问题:)

+0

请出示您的用于处理上传的代码。您将需要存储文件serverside进行处理。如果它在内存中或临时文件取决于您的要求 –

+0

感谢您的回复@AndréSchild。我不知道如何处理vaadin中的上传文件。我刚刚创建了root.addComponent(new upload());.我卡在这里。我无法进一步移动:( – user3599302

+0

http://demo.vaadin.com/sampler/#ui/data-input/other/upload我使用了源代码并添加了代码,在lineBreaker上出现错误,等等。我不知道如何移动,请让我的一天免费@AndréSchild:( – user3599302

回答

1

你可以做,

public class RoleAdminView extends Panel implements View{ 

//add a button view 
// 
    @Override 
public void uploadFailed(Upload.FailedEvent event) { 
    Notification.show(event.getFilename() + "----" + event.getMIMEType()); 
    //here it will show the error if upload failed 
} 

@Override 
public void uploadSucceeded(SucceededEvent event) { 
/// do your functionlity 
} 
    @Override 
public OutputStream receiveUpload(String filename, String mimeType) { 
    FileOutputStream fos = null; 
    // do your functionality to save in any path or server path 
    return fos; // Return the output stream to write to 
} 

} 

我希望这是我对您有帮助:)

+0

谢谢...我会检查与此... :) – user3599302