当前位置 博文首页 > 关于jsp版ueditor1.2.5的部分问题解决(上传图片失败)

    关于jsp版ueditor1.2.5的部分问题解决(上传图片失败)

    作者:admin 时间:2021-09-01 19:10

    1. 关于上传图片失败的问题

    首先导入jar包
    commons-fileupload-1.2.2.jar,ueditor.jar

    然后修改editor_config.js

    找到并修改 URL 修改为  window.UEDITOR_HOME_URL||"/mypro/ueditor/"  其中mypro是我的项目名称

    imagePath 修改为 URL + "upload/"
    假设我们的图片存储路径是ueditor/upload/

    然后修改 imageUp.jsp
    up.setSavePath("") 修改为 up.setSavePath("../imageUp");
    这样就设置图片的存储路径为ueditor/upload/imageUp

    然后如果没有在web.xml中配置struts2的拦截器的话,应该可以上传成功了,然后如果需要结合struts2拦截器,则需要另外添加配置

    原理是这样的,就是自己创建一个拦截器,替换默认的拦截器,然后将所不需要拦截的路径过滤,其余的还是用默认拦截器

    首先创建一个拦截器类

    复制代码 代码如下:

    public class MyStrutsFilter extends StrutsPrepareAndExecuteFilter {
     public void doFilter(ServletRequest req, ServletResponse res,
       FilterChain chain) {
      HttpServletRequest request = (HttpServletRequest) req;
      String url = request.getRequestURI();
      if (url.contains("ueditor/jsp/")) {<SPAN style="WHITE-SPACE: pre">  </SPAN>//这里是将整个文件夹下的文件都过滤了
       try {
        chain.doFilter(req, res);
       } catch (IOException e) {
        e.printStackTrace();
       } catch (ServletException e) {
        e.printStackTrace();
       }
      } else {
       try {
        super.doFilter(req, res, chain);// 采用默认父类的拦截器,即 struts2
       } catch (IOException e) {
        e.printStackTrace();
       } catch (ServletException e) {
        e.printStackTrace();
       }
      }
     }
    }

    然后在web.xml中定义

    复制代码 代码如下:

    <?xml version="1.0" encoding="UTF-8"?>
    <web-app version="3.0"
     xmlns="http://java.sun.com/xml/ns/javaee"
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
     http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
      <display-name></display-name> 
      <welcome-file-list>
        <welcome-file>index.jsp</welcome-file>
      </welcome-file-list>
        <session-config>   
            <session-timeout>30</session-timeout>   
        </session-config> 
      <filter>
      <filter-name>struts2</filter-name>
      <filter-class> 
            cn.xyx.web.filter.MyStrutsFilter
            <!-- 这里使用自定义拦截器,.jsp不做处理,其他使用默认拦截器 -
             注意这里替换了默认的struts2的 拦截器 org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter -->
        </filter-class>
      </filter>
      <filter-mapping>
      <filter-name>struts2</filter-name>
      <url-pattern>/*</url-pattern>
      </filter-mapping>
      <error-page>
       <error-code>404</error-code>
       <location>/404.jsp</location>
     </error-page>
      </web-app>

    这样配置就可以了

    jsjbwy