<action name="filedown" class="FileDownAction">
<param name="inputPath">/uploadfiles/forum/</param>
<result name="success" type="stream">
<param name="inputName">targetFile</param>
<param name="contentDisposition">filename="download"</param>
<param name="bufferSize">4096</param>
</result>
</action>这样在下载的时候,文件类型是不确定的,只有弹出框提示未知类型的download文件要下载。
我需要的效果是,下载时可以获取到所下载文件的后缀名,
即:如果是.txt,那就下载的文件为download.txt;如果为.doc,那么下载的文件为download.doc,
请问这个该怎么解决呢?
<param name="contentDisposition">filename="download."${suffix}</param>好像是这么写的,自己在Action给suffix对象处理下,试试~~
attachment;filename="${fileName}"
</param>
然后在下载文件的Action中:
private String download;
//geter - seter省略 //加入下面的方法
//对于配置中的 ${fileName}, 获得下载保存时的文件名
public String getFileName() {
//将download的后缀提取出来就行了。
String[] suffix = download.split("\\.");
int size=suffix.length;
DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
String fileName = "文件(" + df.format(new Date()) + ")."+suffix[size-1];
try {
//中文文件名也是需要转码为 ISO8859-1,否则乱码
return new String(fileName.getBytes(), "ISO8859-1");
} catch (UnsupportedEncodingException e) {
return "failed."+suffix[size-1];
}
}