日期:2014-05-17  浏览次数:20697 次

struts2 的下载文件 下载文件的名称
我写了个struts2 的下载文件。功能也实现了,当是有个蛋疼的问题,就是下载到本地的时候的文件名称就是ACTION的名称。比如我在服务器里面下载是一个1001.zip,访问路径是download!dfc.action,结果直接给我下了个download!dfc.action文件。然后我文件后缀改成.zip,里面内容却是1001.zip里面的内容。

这是我部分代码,希望给位大神帮帮忙,给小弟指点一下迷津~~~

这是struts.xml下载部分的配置文件

<result type="stream">
<param name="contentType">application/octet-stream;charset=ISO8859-1</param>
<param name="inputName">inputStream</param>
<param name="contentDisposition">attachment;filename="${fileName}"</param>
<param name="bufferSize">4096</param>
</result>

action代码

public void downloadCsvFile(String cvsFileName) throws Exception{
this.fileName = cvsFileName;
}
public InputStream getInputStream() {
return ServletActionContext.getServletContext().getResourceAsStream("/upload/csv/temp/"+fileName);
}


------解决方案--------------------
完整代码...
------解决方案--------------------
<param name="contentDisposition">attachment;filename="${fileName}".zip</param>
这样看看
------解决方案--------------------
contenttype换成application/zip
------解决方案--------------------
<param name="contentDisposition">attachment;filename="${fileName}"</param>
这句话的意思是下载的文件名是${fileName}也就是你action中的getFileName()返回的名称,楼主检查下你getFileName方法返回的值就知道了。