<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,
请问这个该怎么解决呢?

解决方案 »

  1.   

     <param name="contentDisposition">filename="download.doc"</param>
      

  2.   

    在配置文件写OGNL表达式处理后缀
    <param name="contentDisposition">filename="download."${suffix}</param>好像是这么写的,自己在Action给suffix对象处理下,试试~~
      

  3.   

    <param name="contentDisposition">
    attachment;filename="${fileName}"
    </param>
      

  4.   

    谢谢大家,问题已经解决。struts:   <param name="contentDisposition">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];       
            }       
        }