kun*_*foo 2 java download vaadin
在vaadin 7中,如何在使用时懒惰地确定文件名FileDownloader?
final Button downloadButton = new Button("Download file");
FileDownloader downloader = new FileDownloader(new StreamResource(new StreamSource() {
@Override
public InputStream getStream () {
return new ByteArrayInputStream(expesiveCalculationOfContent());
}
}, "file.snub"));
downloader.extend(downloadButton);
Run Code Online (Sandbox Code Playgroud)
在此代码示例中,清楚地显示文件名
如何懒惰地确定下载文件的文件名?
我不知道它是否是脏的但是这样做:扩展FileDownloader.handleConnectorRequest()以在调用其super方法之前调用StreamResource.setFilename().
{
final Button downloadButton = new Button("Download file");
final StreamResource stream = new StreamResource(
new StreamSource() {
@Override
public InputStream getStream() {
return new ByteArrayInputStream("Hola".getBytes());
}
}, "badname.txt");
FileDownloader downloader = new FileDownloader(stream) {
@Override
public boolean handleConnectorRequest(VaadinRequest request,
VaadinResponse response, String path)
throws IOException {
stream.setFilename("better-name.txt");
return super
.handleConnectorRequest(request, response, path);
}
};
downloader.extend(downloadButton);
layout.addComponent(downloadButton);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3829 次 |
| 最近记录: |