我用的struts2的cos上传。 s2 配置的文件最大上传为5M。 
在我的项目里有2种上传需求,一种是最大为2G的文件。 一种是5M以下的。在我用cos做大文件上传时发现 , 大于5M的文件,正常上传,而小于5M的文件却不能上传的服务器上。
以下是报错信息。
java.io.IOException: Corrupt form data: premature ending
at com.oreilly.servlet.multipart.MultipartParser.<init>(MultipartParser.java:207)
at com.oreilly.servlet.MultipartRequest.<init>(MultipartRequest.java:223)
at com.joyintech.hrxs.back.mediaFlow.SimpleUploaderServlet.doPost(SimpleUploaderServlet.java:90)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)望各位给力啊。

解决方案 »

  1.   

    楼主是用Action模式做的吗?换成servlet模式就可以了。
      

  2.   


    String encoding = "UTF-8";   
    FileRenamePolicy rename = new MyFileRenamePolicy();   
    MultipartRequest multi = null;   
    try {   
    multi = new MultipartRequest(request, saveDirectory, maxPostSize, encoding, rename);   
    } catch (IOException e) {   
    e.printStackTrace();
      return;
    }
      

  3.   

    可是这里的request 打印出来是struts2转过的。
      

  4.   

    在web.xml文件中,是不是同一个filter-mapping中用多个url-pattern?
      

  5.   

    上传的这个servlet,没有,就一个。
    <servlet>  
            <servlet-name>SimpleUploader</servlet-name>  
            <servlet-class>com.joyintech.hrxs.back.mediaFlow.SimpleUploaderServlet</servlet-class>  
            <init-param>  
                <param-name>fileSizeLimit</param-name>  
                <param-value>2000</param-value>  
            </init-param>  
        </servlet>  
        <servlet-mapping>  
            <servlet-name>SimpleUploader</servlet-name>  
            <url-pattern>/up/upload.jsp</url-pattern>  
        </servlet-mapping>
      

  6.   

    先试下这个网站,如果也失败,有可能是浏览器的问题 :http://www.servlets.com/jservlet2/examples/ch04/upload.html
      

  7.   

    因为我的servlet的url是upload.jsp的,被我同事弄到filter里拦截了。导致原始的request变成struts2的request  。  
    <filter-mapping>
        <filter-name>PermFilter</filter-name>
        <url-pattern>*.jsp</url-pattern>
        </filter-mapping>