1. 程式人生 > >UEditor富文本編輯器時,插入圖片沒有任何反應

UEditor富文本編輯器時,插入圖片沒有任何反應

play 文本 OS fault highlight struts2 定義 問題 不能

1、信息: Unable to find ‘struts.multipart.saveDir‘ property setting. Defaulting to javax.servlet.context.tempdir

這是struts需要在struts.xml配置臨時文件夾。

只需要在struts.xml的<struts></struts>中添加一下語句即可。

<constant name="struts.multipart.saveDir" value="/tmp"/>

原因:

1.struts.multipart.saveDir用於存放指定臨時文件的文件夾,該配置在struts.properties文件中。例如:在struts.properties文件中加入如下代碼:

struts.multipart.saveDir = /tmp

這樣下次提交表單的時候就不會出現這個問題了!

2.如果沒有用struts.properties文件,也可以在struts.xml中配置如下代碼,效果一樣:

<constant name="struts.multipart.saveDir" value="/tmp"/>

2、上傳圖片時如果提示“上傳數據找不到”,則我們不能用struts自己的過濾器,我們要自己寫一個,以下為步驟:

增加創建一個過濾器,用來過濾ueditor的上傳請求:

技術分享圖片
 1 package Filter;
 2 
 3 import java.io.IOException;  
4 5 import javax.servlet.Filter; 6 import javax.servlet.FilterChain; 7 import javax.servlet.FilterConfig; 8 import javax.servlet.ServletException; 9 import javax.servlet.ServletRequest; 10 import javax.servlet.ServletResponse; 11 import javax.servlet.http.HttpServletRequest; 12 13
import org.apache.struts2.dispatcher.StrutsRequestWrapper; 14 //由於UEditor圖片不能上傳自制的Filter過濾器 15 public class UeditorFilter implements Filter { 16 17 @Override 18 public void doFilter(ServletRequest req, ServletResponse res, 19 FilterChain chain) throws IOException, ServletException { 20 HttpServletRequest request = (HttpServletRequest) req; 21 String url = request.getRequestURI(); 22 23 if (decideURI(url)) { 24 chain.doFilter(new StrutsRequestWrapper((HttpServletRequest) req), res); 25 }else{ 26 chain.doFilter(req, res); 27 } 28 29 } 30 31 /** 32 * ueditor編輯器中的圖片上傳和文件上傳 33 * @param url 34 * @return 35 */ 36 private boolean decideURI(String url){ 37 if(url.endsWith("imageUp.jsp")){ 38 return true; 39 }else if(url.endsWith("fileUp.jsp")){ 40 return true; 41 }//此處可能需要修改 42 return false; 43 } 44 45 @Override 46 public void destroy() { 47 48 } 49 50 @Override 51 public void init(FilterConfig filterConfig) throws ServletException { 52 53 } 54 55 }
UeditorFilter

由於最新的百度UEditor編輯器,上傳圖片不是使用的imageUp.jsp

所有的上傳都是使用的controller.jsp,所以將if中的判斷改為

if (url.endsWith("controller.jsp")) {
return true;
}

即可

註意還需要在web.xml中配置使用上面定義的過濾器,替換原來的那個默認過濾器,代碼如下 :

1   <filter>  
2      <filter-name>struts2</filter-name>  
3     <filter-class>Filter.UeditorFilter</filter-class>  
4  </filter>  
5 <filter-mapping>  
6      <filter-name>struts2</filter-name>  
7      <url-pattern>/*</url-pattern>  
8  </filter-mapping>  

就此,問題得到解決

技術分享圖片

UEditor富文本編輯器時,插入圖片沒有任何反應