小弟开发项目时,使用FCKeditor_2.6.3.zip + fckeditor-java-2.4.1来上传文件,在没有Struts2,单独实验时,可以上传成功。
     加上struts2后,就上传不成功了,说是没有权限:
  Security error. You probably don't have enough permissions to upload. Please check your server
     反复实验后,才知道是web.xml中加了struts2的filter造成的:
<filter>
<filter-name>struts2</filter-name>
<filter-class>
     org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
         </filter-class>
</filter><filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
我想是struts2拦截了上传文件的请求造成的,但因为第一次用fckeditor,具体怎么回事也不清楚,不知哪位有高见,还请帮忙

解决方案 »

  1.   

    把web.xml中struts2的配置改成只拦截.action和jsp就好了
    或者自己写一个类来继承org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
    ,在doFilter中写上
    HttpServletRequest request = (HttpServletRequest)req;   
          if("/Media/fckeditor/editor/filemanager/connectors/php/upload.php".equals(request.getRequestURI())){   
         chain.doFilter(req,res);   
         }else{
          //System.out.println(request.getRequestURI() + "-------------------");
          super.doFilter(req,res,chain);