1. ホーム
  2. Web プログラミング
  3. ウェブ編集者

jsp版ueditor1.2.5について 一部問題解決(画像のアップロード失敗)

2022-01-01 20:45:28

1.画像のアップロードに失敗する問題について

最初に jar パッケージをインポートします。
commons-fileupload-1.2.2.jar, ueditor.jar

次にeditor_config.jsを修正します。

URLをwindow.UEDITOR_HOME_URL||"/mypro/ueditor/"(myproは私のプロジェクトの名前)に変更してください。

imagePathをURL + "upload/"に変更しました。
画像ストレージのパスが uiditor/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>//here is the entire folder of files filtered
   try {
    chain.doFilter(req, res);
   } catch (IOException e) {
    e.printStackTrace();
   } catch (ServletException e) {
    e.printStackTrace();
   }
  } else {
   try {
    super.doFilter(req, res, chain);// use the default parent's interceptor, 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 MyStrutsFilter
        <! -- custom interceptor is used here, .jsp is left untouched, and the default interceptor is used for the rest -
         Note that the default struts2 interceptor is replaced here 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>

このように設定すればOKです