1. 程式人生 > >百度ueditor後端配置錯誤,未找到上傳資料,上傳圖片的完整步驟以及難點問題!

百度ueditor後端配置錯誤,未找到上傳資料,上傳圖片的完整步驟以及難點問題!

本人因需要編輯功能,自己鑽研加網上找文件,終於弄出了上傳功能。 

1  先說原理,不用在後臺建立Action或者controller去接收ueditor上傳的檔案,你只需要設定上傳的路徑,他會自動給你上傳到該目錄下面,非常強大,並且是否帶上Html頭和尾自      需要在ueditor.config.js中設定即可,預設是不帶頭尾的!另外如果專案使用maven就有點麻煩,並且使用Build Path --->Add to Build Path這個方法新增jar包是無效的,因為他只會引入maven下的jar包,但是maven中央倉庫又沒有這個包,你只能本地新增這個ueditor-1.1.2.jar,你可以選擇本地新增或者編譯後新增,

我這邊演示編譯後新增。因為匯入jsp/lib/ueditor-1.1.2.jar的時候maven中央倉庫是沒有這個jar包的,所以我在這裡只教你一個臨時的辦法,具體,你可以在linux寫個shell指令碼。

      臨時辦法:maven編譯過後會產生target檔案,在編譯過後先別啟動tomcat  找到target/專案名-0.1-SNAPSHOT/WEB-INF/lib/這個目錄下,然後把ar包複製貼上到此路徑下面。

如果沒有這五個個包,上傳功能將不能使用!!如果沒有核心包ueditor-1.1.2.jar會出現:

如果你是tomcat 直接啟動的,也可以在Eclipse中的tomcat 下面, 右擊專案,選擇

找到自己的專案,然後也是找到WEB-INF下面的lib 目錄,把包放進去,如果啟動後,發現裡面有包還是會出現這個錯誤,就可能是下面的路徑問題了。

還有一種錯誤也會出現這個情況

也會出現這種情況,路徑配置不對,把中間那個js刪除掉就好了~讓他能找到那個ueditor-1.4.3.3包

建議按官網的來,比較簡單。把你的編輯器包ueditor-1.4.3.3放在webapp下面就好,然後上面按我的加一個

window.UEDITOR_HOME_URL = "/yuneecuc/ueditor-1.4.3.3/";                                                             /專案名稱/編輯器的包名稱/;

這個在ueditor.config.js中新增 

總之就是要訪問到這個包下面,後面的jsp/controller.jsp才能訪問

如果jar已經引入,路徑也是對的。建議清除瀏覽器資料和清除tomcat快取在試試..........................

好了,大致的講完了,現在再講上傳圖片,本人框架是SSH

1 基本功能

匯入對應的js後,注意js的先後順序,然後body中定義個一個變數<script id="editor" type="text/plain" style="width:1024px;height:500px;"></script>然後在初始化一下,

<script type="text/javascript" language="javascript">
var ue = UE.getEditor('editor');
</script>

這樣我們基本功能就有了

點選上傳的時候出現了:

此問題見上面..........................

2 上傳功能

上面說過了,如果要上傳功能必須匯入四個jar包,但是maven沒有最後一個jiar包,你可以按上面的"臨時辦法"來操作,編譯完後匯入這些jiar包在啟動,注意,Build Path --->Add to Build Path這樣匯入是沒有用的。匯入完後的效果:

看,可以上傳了,剛才那個錯其實就是沒有引入jar包。

3 解決未找到上傳資料問題

這個其實就是網上經常說的別Struts2攔截器攔截掉了資料,只需要寫一個class檔案然後在web.xml中去新增一個過濾器

下面我偷個懶,抄襲一波程式碼了直接貼程式碼了:

package com.suerp.action.xiata;
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(request.getContextPath()+"/js/utf8-jsp/jsp/controller.jsp")) {             
            System.out.println("使用自定義過濾器");             
            chain.doFilter(req, res);         
        }else{             
            System.out.println("使用預設過濾器");             
            super.doFilter(req, res, chain);         
        } 
    }
}

注意,一定要注意。路徑一定要是絕對路徑!!!否則還是無效的   這些網上的人沒有考慮到路徑的問題。這個問題我找了一天,才發現!!!

修改web.xml檔案

其他的struts2 的都刪掉!!

配置完畢。在看效果:

上傳成功!!nice!!!

          如果想自己上傳 ,自定義上傳

他會上傳到這個路徑,你可以自己配,想傳哪就傳哪裡!!!寫了我一個小時!!不懂的可以加我  QQ961132897    

 老夫去也!!!!