当前位置:编程学习 > JAVA >>

struts2进行下载时出现java.lang.IllegalStateException

错误 349 (net::ERR_RESPONSE_HEADERS_MULTIPLE_CONTENT_DISPOSITION):我们收到了多个“Content-Disposition”标头 --------------------编程问答-------------------- 都没有给出代码,怎么解决问题啊。

IllegalComponentStateException 是在不合理或不正确时间内唤醒一方法时出现的异常信息
jdk5.0文档中很清楚地介绍了出现IllegalStateException异常的可能情况: 

1)同一个页面中再次调用response.sendRedirect()方法。 
2)提交的URL错误,即不是个有效的URL。 

google一下很多的解决办法,真对你的情况自己看看,




但是看你给出的错误::ERR_RESPONSE_HEADERS_MULTIPLE_CONTENT_DISPOSITION
看错误的意思是不是你的 headers有问题(文件名导致的),或者是你下载的文件太大导致的.

看看这个
http://stackoverflow.com/questions/12348242/debugging-multiple-disposition-headers --------------------编程问答-------------------- 是没有提供下载模版吧?我遇到过这个问题 --------------------编程问答-------------------- 谢谢各位了,baidu,Google上的都看了下,没能找到合适的,但给了我灵感,我需要完成的是多文件下载。我的问题已经解决。谢谢! --------------------编程问答-------------------- 可以说下是怎么解决的么
--------------------编程问答--------------------
引用 4 楼 Eureal 的回复:
可以说下是怎么解决的么



是应该说一下解决方法···· --------------------编程问答--------------------
引用 5 楼 yan19870429 的回复:
引用 4 楼 Eureal 的回复:可以说下是怎么解决的么


是应该说一下解决方法····
坐等那 --------------------编程问答-------------------- response.setHeader("Content-Disposition", "attachment;fileName="
                  + java.net.URLEncoder.encode(fileName,"UTF-8"));
这里的问题, 我把这个删了, 然后改了下struts.xml的配置 --------------------编程问答-------------------- 源代码能贴下最好  大家互相学习 呵呵 --------------------编程问答--------------------
public class DownloadAction extends ActionSupport{
private static final long serialVersionUID = -3036349171314867490L; 
    
    private String fileName; 
      
    public String getFileName() { 
        return fileName; 
    } 
  
    public void setFileName(String fileName) throws UnsupportedEncodingException { 
        this.fileName = new String(fileName.getBytes("ISO-8859-1"),"UTF-8"); 
    } 
      
    public InputStream getInputStream() throws UnsupportedEncodingException, FileNotFoundException{ 
           return new BufferedInputStream(new FileInputStream(fileName));
    } 
    
    @Override
    public String execute() throws Exception { 
        return SUCCESS; 
    } 
      
      
  
}
--------------------编程问答--------------------
<action name="download" class="com.*****" method="execute">
<result name="success" type="stream"> 
                 <param name="contentType">application/octet-stream</param> 
                 <param name="inputName">inputStream</param> 
                 <param name="bufferSize">4096</param> 
                 <param name="contentDisposition">attachment;filename=${fileName}</param>
            </result> 
</action>
补充:Java ,  Java EE
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,