Wicket:提交按钮以下载二进制文件
Wicket: Submit button to download binary file
我知道如何创建一个简单的 link 来下载任意二进制数据(使用 ResourceLink
与 ResourceStreamResource
和 AbstractResourceStream
),但现在我想创建一个表单的提交按钮应该再次重定向到表单(例如纠正输入错误)或下载任意二进制数据文件而不转到不同的页面。如何实现?
对于二进制部分,尝试这样的事情:
final ResourceStreamRequestHandler target = new ResourceStreamRequestHandler(new AbstractResourceStream() {
@Override
public String getContentType() {
return "application/octet-stream";
}
@Override
public InputStream getInputStream() throws ResourceStreamNotFoundException {
return new ByteArrayInputStream(yourBinaryContent);
}
@Override
public void close() throws IOException {
}
});
target.setFileName("response.dat");
target.setContentDisposition(ContentDisposition.ATTACHMENT);
getRequestCycle().scheduleRequestHandlerAfterCurrent(target);
否则,要处理 'text' 响应,请使用您已有的代码。
我知道如何创建一个简单的 link 来下载任意二进制数据(使用 ResourceLink
与 ResourceStreamResource
和 AbstractResourceStream
),但现在我想创建一个表单的提交按钮应该再次重定向到表单(例如纠正输入错误)或下载任意二进制数据文件而不转到不同的页面。如何实现?
对于二进制部分,尝试这样的事情:
final ResourceStreamRequestHandler target = new ResourceStreamRequestHandler(new AbstractResourceStream() {
@Override
public String getContentType() {
return "application/octet-stream";
}
@Override
public InputStream getInputStream() throws ResourceStreamNotFoundException {
return new ByteArrayInputStream(yourBinaryContent);
}
@Override
public void close() throws IOException {
}
});
target.setFileName("response.dat");
target.setContentDisposition(ContentDisposition.ATTACHMENT);
getRequestCycle().scheduleRequestHandlerAfterCurrent(target);
否则,要处理 'text' 响应,请使用您已有的代码。