ueditor1.3.6jsp版在struts2應用中上傳圖片報"未找到上傳文件"解決方案

在struts2應用中使用ueditor富文本編輯器上傳圖片或者附件時,即便配置好了上傳路徑信息,也會出現"未找到上傳文件"的錯誤提示,出先該問題的緣由是:在配置struts過濾器,過濾路徑設置/*方式時,因爲struts2框架默認使用apache的Commons FileUpload組件和內建的FileUploadInterceptor攔截器實現上傳,會將request文件域封裝到action中一個File類型的屬性中,並刪除request中的文件域,所以會上傳文件失敗。 html

在這裏先說下ueditor1.3.6 jsp版文件上傳的相關配置。 java

Ueditor的目錄結構 apache

首頁咱們要在ueditor.config.js文件中配置ueditor的基本相對路徑 app


接下來看看圖片上傳的配置 框架

咱們能夠看出圖片上傳是經過ueditor根目錄下jsp目錄下的imageUp.jap完成的。savePath爲文件保存目錄列表 jsp

會在下圖中用到 編輯器

對應的會在jsp目錄下建立upload目錄用於保存上傳的圖片 ide

最後咱們打開imageUp.jsp頁面,會看到該頁面用到Uploader.java類,因此咱們須要類路徑下建立一個ueditor包並將Uploader.java類拷貝進去 url



完成以上配置,當咱們上傳文件時,就會出現「未找到上傳文件」的提示。 spa

解決方案:

1.更改struts配置/*爲*.xx的方式。(因爲項目緣由,該方式本人未親試,如有讀者實驗過,請留言告知,謝謝

2.本身寫一個action代替原有的imageUp.jsp頁面(貌似該方案比較麻煩

3.本身定義一個struts過濾器,指定不對ueditor/jsp/目錄下的jsp頁面進行過濾。(該方案相對上一種就比較簡單

過濾器代碼以下:

package com.jl.filter;

import java.io.IOException;

import javax.servlet.FilterChain;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;

import org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter;

public class MyStrutsFilter extends StrutsPrepareAndExecuteFilter{
	@Override
	public void doFilter(ServletRequest req, ServletResponse res,
			FilterChain chain) throws IOException, ServletException {
		HttpServletRequest request = (HttpServletRequest) req;
		String url = request.getRequestURI();         
		System.out.println(url);         
		if (url.contains("/meeting/ueditor/jsp/")) {             
			System.out.println("使用自定義過濾器");             
			chain.doFilter(req, res);         
		}else{             
			System.out.println("使用默認過濾器");             
			super.doFilter(req, res, chain);         
		} 
	}
}



修改struts配置以下:
<!-- 配置struts過濾器 -->
	<filter>
		<filter-name>struts2</filter-name>
		<filter-class>com.jl.filter.MyStrutsFilter</filter-class>
	</filter>
	<filter-mapping>
		<filter-name>struts2</filter-name>
		<url-pattern>/*</url-pattern>
	</filter-mapping>



到此重啓項目,再進行上傳操做就不會再出錯了哦!^_^

最後,但願你們轉載請註明出處,尊重別人的勞動成果http://my.oschina.net/jiangli0502/blog/210263



參考資料:http://www.010cnc.net/subject/about/UEditor%20與Struts2%20結合下傳有關問題解決.html

相關文章
相關標籤/搜索