0
我試圖在每次下載csv文件時爲我的IResource動態設置fileName。Wicket:我如何爲ResourceStream下載設置動態文件名(帶時間戳)
我附加了我的工作到目前爲止。這是覆蓋和設置每個下載的自定義文件名的正確方法嗎?有一個setFileName方法也被列爲一個選項。 有人可以告訴我哪個是推薦的(setResponseHeaders或setFileName)以及如何最好地實現?我對門票比較陌生,現在仍在尋找解決方法。
protected <T extends Object> IResource exportResource(String fileName, final IDataExporter exporter, final DataTable<T, String> table)
{
final String file = fileName;
final ResourceStreamResource resource = new ResourceStreamResource()
{
@Override
protected IResourceStream getResourceStream()
{
return new DataExportResourceStreamWriter(dataExporter,table);
}
@Override
protected void setResponseHeaders(ResourceResponse data, Attributes attributes) {
String pattern = "yyyy-MM-dd_HH:mm:ss";
SimpleDateFormat simpleDateFormat = new SimpleDateFormat(pattern);
String timestamp = simpleDateFormat.format(new Date());
String fileName = file.substring(0, file.indexOf(".csv"))+"_"+timeStamp+".csv";
data.setFileName(fileName);
super.setResponseHeaders(data, attributes);
}
}
在此先感謝。
太好了。謝謝! – learner