`

Struts2中使用Fckeditor上传文件报错

阅读更多
今天在Struts2项目中使用Fckeditor上传文件时报如下异常:

java.lang.RuntimeException: Unable to load bean org.apache.struts2.dispatcher.multipart.MultiPartRequest (jakarta) - [unknown location]


上网搜了一下,主要是因为与struts2拦截器的拦截发生冲突引起的原因:

Struts2默认使用的是Jakarta的Common-FileUpload的文件上传框架,而struts2的filter拦截了上传文件的动作,拦截器代码是这样写的:

//org.apache.struts2.dispatcher.Dispatcher.java 
public HttpServletRequest wrapRequest(HttpServletRequest request, ServletContext servletContext) throws IOException { 
        // don't wrap more than once 
        if (request instanceof StrutsRequestWrapper) { 
            return request; 
        } 
        String content_type = request.getContentType(); 
        if (content_type != null && content_type.indexOf("multipart/form-data") != -1) { 
            MultiPartRequest multi = getContainer().getInstance(MultiPartRequest.class); 
            request = new MultiPartRequestWrapper(multi, request, getSaveDir(servletContext)); 
        } else { 
            request = new StrutsRequestWrapper(request); 
        } 
        return request; 
    } 


注意MultiPartRequest multi = getContainer().getInstance(MultiPartRequest.class);这句是上传文件时拦截器实现所需要的,出错的原因是找不到MultiPartRequest.class的实现类.这个类在上传框架jar文件中.这是文件上传fileupload解析器。

因此,如果需要使用Struts2的文件上传功能,则需要在web应用中增加两个JAR文件,即commons-io-1.4.jar和commons-fileupload-1.2.1.jar。将这个包或是包的最新版本放在工程的lib目录下,即解决以上异常问题,成功实现文件的上传。

上传图片时弹出完全警告:

Security error. You probably don't have enough permissions to upload. Please check your server


struts2对request进行了封装,所以当fck的request.getinputStream的时候就会出错.修改的方法就是对filtermapping的路径进行修改。

解决方法如下:

将下面代码中的“/*”

<filter-mapping> 
<filter-name>struts2</filter-name> 
<url-pattern>/*</url-pattern> 
</filter-mapping>


改为:“*.action”。
另外,jsp页面上面用到了struts2的tag,那么就要增加一个*.jsp的url-pattern。

如下:

<filter-mapping>   
  <filter-name>struts2</filter-name>   
  <url-pattern>*.action</url-pattern>   
</filter-mapping>   

<filter-mapping>   
  <filter-name>struts2</filter-name>   
  <url-pattern>*.jsp</url-pattern>   
</filter-mapping> 
分享到:
评论
2 楼 shappy1978 2009-02-26  
扯淡的是MultiPartRequest根本就不在commons-fileupload或者你说的另外两个包中,而是struts2的包中
1 楼 shappy1978 2009-02-26  
不是这样的,上一个项目用了<url-pattern>/*</url-pattern>一样可以正常上传(jspsmartupload),而且你没有说明白为什么找不到MultiPartRequest.class

相关推荐

    struts2+fckeditor

    解决上述问题后,你应该能够成功地在Struts2应用中使用FCKeditor上传图片。如果遇到任何错误,建议检查服务器日志,它们通常会提供错误的具体信息,帮助你定位并解决问题。同时,学习并理解Struts2的拦截器机制和...

    struts2,fckeditor冲突解决

    在使用FCKeditor上传图片时,如果没有正确配置Action,Struts2可能无法识别或处理上传请求。因此,你需要在`struts.xml`文件中为FCKeditor的上传操作创建一个专门的Action,并设置相应的接收路径。 2. **文件上传...

    Struts2与FCKeditor的整合.doc

    Struts2 和 FCKeditor 的整合是Web开发中一个常见的需求,特别是在需要提供富文本编辑器功能时。FCKeditor是一款强大的开源JavaScript文本编辑器,而Struts2是一个流行的Java Web应用框架。本文将详细讲解如何将...

    FCKeditor2.6 上传图片报错解决方案

    FCKeditor2.6 上传图片报错解决方案 用FCKeditor上传图片时出现XML request error:OK(200)错误。终结解决方案。 替换fckeditor\editor\filemanager\browser\default\js下面的fckxml.js

    Fckeditor完美结合Struts2 教程

    首先,为了在Struts2项目中使用Fckeditor,我们需要将其下载并引入到项目的类路径中。这通常包括添加Fckeditor的JAR文件以及相关的CSS和JavaScript资源。Fckeditor的资源文件通常包含在`fckeditor`目录下,我们需要...

    struts2下的FCKeditor插件

    struts2下的FCKeditor插件,解决了兼容问题,例子见本人上传的其他资源

    struts2+FCKeditor

    在Struts2中配置FCKeditor,首先需要在项目的类路径下添加FCKeditor的库文件,包括JavaScript文件和相关的CSS样式表。这些文件通常可以从FCKeditor的官方网站下载得到,包含fckeditor.js、fckconfig.js等核心文件。 ...

    Struts2项目 jsp页面FCKeditor使用

    ### Struts2项目中JSP页面使用FCKeditor详解 #### 一、引言 FCKeditor是一款功能强大的在线富文本编辑器,广泛应用于各种Web应用程序中,特别是那些需要用户输入格式化文本的场景。在Struts2项目中集成FCKeditor...

    struts2+FCKeditor-2.3

    最后,在JSP页面中使用Struts2的`s:textarea`标签,通过配置属性来指定FCKeditor。 4. **配置FCKeditor**:可以通过配置FCKeditor的配置文件(通常为fckconfig.js)来定制编辑器的行为,例如设置默认字体、字号、...

    struts和fckeditor整合完整版

    Struts和FCKeditor是两种在Web开发中广泛使用的开源工具。Struts是基于MVC(Model-View-Controller)架构的Java Web框架,而FCKeditor则是一个强大的富文本编辑器,允许用户在Web页面上进行类似Word的文本编辑。 ...

    兼容struts2的FCKEditor(插件).rar

    - **编辑器配置**:在页面中使用FCKEditor,需要配置编辑器的路径、宽度、高度、语言等属性,以及与Struts2 Action的交互参数。 5. **文件上传**:FCKEditor支持文件上传功能,这需要在Struts2中配置文件上传拦截...

    struts2+fckeditor关于信息发布的实例

    Struts2和FCKeditor是两个在Web开发中常见的开源工具,它们的结合使用能创建出功能丰富的信息发布系统。在这个实例中,我们将深入探讨如何利用这两个技术来构建一个信息发布的平台。 **Struts2框架** Struts2是...

    fckeditor上传文件绝对路径设置方法

    在使用FCKEditor这款强大的富文本编辑器时,有时我们需要自定义上传文件的路径,使其成为绝对路径,以便更好地管理和访问资源。FCKEditor默认情况下,上传文件的路径通常是相对路径,这可能在多服务器环境或者需要...

    FCKeditor ssh2项目 jar包配置页面文件

    集成FCKeditor到SSH2项目涉及多个环节,包括引入必要的Jar包、配置`web.xml`、设置属性文件、在JSP中使用编辑器,以及处理文件上传。理解这些步骤并正确配置,可以让你在SSH2项目中充分利用FCKeditor的强大功能,...

    FCKeditor文件上传漏洞及利用-File-Upload-Vulnerability-in-FCKEditor1

    【FCKeditor文件上传漏洞及利用 - File-Upload-Vulnerability-in-FCKEditor1】 本文主要探讨了FCKeditor(现称为CKeditor)中的PHP文件上传模块存在的安全漏洞,允许攻击者绕过文件类型检查,将恶意PHP代码上传到...

    struts2下的fckeditor插件

    NULL 博文链接:https://jumpman.iteye.com/blog/299240

    struts2BBS论坛

    Struts2与FCKeditor的结合,体现了Web开发中前后端分离的理念,Struts2处理后端逻辑,FCKeditor负责前端用户界面的交互。这种组合在小型项目中很常见,既简化了开发流程,又提高了用户体验。 为了运行Struts2 BBS...

Global site tag (gtag.js) - Google Analytics