程序员

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

作者:admin 2021-04-09 我要评论

1. 关于上传图片失败的问题 首先导入jar包 commons-fileupload-1.2.2.jar,ueditor.jar 然后修改editor_config.js 找到并修改 URL 修改为 window.UEDITOR_HOME_U...

在说正事之前,我要推荐一个福利:你还在原价购买阿里云、腾讯云、华为云服务器吗?那太亏啦!来这里,新购、升级、续费都打折,能够为您省60%的钱呢!2核4G企业级云服务器低至69元/年,点击进去看看吧>>>)

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>

这样配置就可以了


本文转载自网络,原文链接:https://m.jb51.net/article/37972.htm

版权声明:本文转载自网络,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。本站转载出于传播更多优秀技术知识之目的,如有侵权请联系QQ/微信:153890879删除

相关文章
  • 四两拨千斤——你不知道的VScode编码Ty

    四两拨千斤——你不知道的VScode编码Ty

  • 我是如何在 Vue 项目中做代码分割的

    我是如何在 Vue 项目中做代码分割的

  • position:sticky 粘性定位的几种巧妙应

    position:sticky 粘性定位的几种巧妙应

  • 从零到一搭建React组件库

    从零到一搭建React组件库