我有一个 Wicket 应用程序,它允许用户生成 PDF 并在弹出窗口中打开它们。我像这样定义了自己的共享资源
public class PdfResourceReference extends SharedResourceReference {
@Override
public IResource getResource() {
return new ByteArrayResource("application/pdf") {
@Override
protected byte[] getData(final Attributes attributes) {
// generate the pdf and return byte[]
}
};
}
}
在应用程序类中,我通过
mountResource("reportPdf", new PdfResourceReference());
一切正常,浏览器打开pdf。但问题是 pdf 文件的名称(一旦用户尝试保存它)总是“reportPdf”。我们的用户希望根据报告类型或客户编号来命名 pdf。类似“0123someCustomerId_report.pdf”的东西
我发现了一个类似的 stackoverflow 问题,它建议使用“Content-disposition”标头。不幸的是,我无法弄清楚如何让它工作(似乎并非所有浏览器都支持它)。
这类问题还有其他解决方案吗?是否可以将挂载路径与动态(类似正则表达式)路径一起使用?