關於editor網頁編輯器ueditor.config.js 配置圖片上傳

最近公司項目在作一個門戶網站,其中新聞和簡介等部分使用到了ueditor編輯器,可是上級明確指示須要圖片上傳這個功能,這時卻發現圖片上傳功能不能正常使用,上傳時一直報錯,網上收了好幾個處理辦法,都說的不夠詳細明瞭,忽然發現ueditor這麼強大的工具在開發過程當中的致命盲點,很糾結,最終通過好久的糾結和苦思冥想終於解決了該問題,如下是關於ueditor 在web 2.0版本下的問題解決思路和方法,由於通過測試 網上下載的ueditor編輯器在4.0下 問題不大。好了言歸正傳,首先亮出ueditor在個人項目的結構位置:web

,這裏先說明一下 標示的這些地方的做用,紅框標示的是Ueditor整個文件的位置,紅線標示的 是 配置過程當中將會用到的各部分,接下來會一一講解。接下來在亮出原始版本ueditor結構位置:json

原始版本ueditor是不能正常上傳圖片的,之因此曬出這兩張圖片是爲了更好的進行對比 找出 問題所在,便於分析 你的問題出在哪裏。首先問題能夠很明確的是程序編譯沒有經過,你按F6進行編譯他提示生成成功,其實否則,接下來咱們就來分析哪些地方形成的編譯沒有經過瀏覽器

咱們先從上面帶星號這個類開始講:請看如下圖片:,若是不出意外,你正在有這樣的疑問,這個錯誤是怎麼產生的,由於我那時就糾結了好久,若是你細心的話你會發現第一張圖片中該文件已經更名爲UploaderFile,這是當時最早想到的解決辦法,覺得改個名字就能解決 該報錯緣由,結果我錯了,(固然改了名字也不影響),那麼問題出在哪裏呢?其實問題出在頭部引用紅線位置就是問題所在,2.0是不支持Linq的 因此 這句要刪掉,同時引用Linq的還有Config.cs 而後就是上面兩句話,能夠看出下面一句話已經在報錯了,這句話爲什麼報錯?由於看程序結構你能夠看出Config.cs類和Uploader.cs類原本就在同一個項目中,這裏在處理程序中再次引用就至關於本來就編譯了,再編譯一次,因此提示同時存在於.....兩個地方,而爲什麼4.0不報錯,我想應該是4.0在升級後處理了這個邏輯吧!這三句話都必須刪掉編輯器

接下來我把imageUp.ashx的代碼貼出來,只要你是ueditor1_3_5-utf8-net這個版本 就沒有問題。工具

 1 <%@ WebHandler Language="C#" Class="imageUp" %>
 2 using System;
 3 using System.Web;
 4 using System.IO;
 5 using System.Collections;
 6 
 7 public class imageUp : IHttpHandler
 8 {
 9     public void ProcessRequest(HttpContext context)
10     {
11         context.Response.ContentType = "text/plain";
12 
13         //上傳配置
14         int size = 2;           //文件大小限制,單位MB                             //文件大小限制,單位MB
15         string[] filetype = { ".gif", ".png", ".jpg", ".jpeg", ".bmp" };         //文件容許格式
16 
17 
18         //上傳圖片
19         Hashtable info = new Hashtable();
20         Uploader up = new Uploader();
21         
22         string pathbase = null;
23         int path=Convert.ToInt32( up.getOtherInfo(context, "dir"));
24         if (path == 1)
25         {
26             pathbase = "upload/";                  
27             
28         }else{
29             pathbase = "upload1/";
30         }
31         
32         info = up.upFile(context, pathbase, filetype, size);                   //獲取上傳狀態
33         
34         string title = up.getOtherInfo(context, "pictitle");                   //獲取圖片描述
35         string oriName = up.getOtherInfo(context, "fileName");                //獲取原始文件名
36 
37 
38         HttpContext.Current.Response.Write("{'url':'" + info["url"] + "','title':'" + title + "','original':'" + oriName + "','state':'" + info["state"] + "'}");  //向瀏覽器返回數據json數據
39     }
40 
41     public bool IsReusable
42     {
43         get
44         {
45             return false;
46         }
47     }
48 
49 }

 ,接下來在看web.config文件,原始的文件時這樣的:,其實這個文件 在整個問題中沒有太大影響(也就是說不會影響圖片上傳),可是爲什麼又要單獨講一下呢?由於在下這個虧吃的有點大,該文件中targetFramework="4.0"這句話 誤導了我,以致於我一直覺得必需要這句話才能在讓該插件正常運行,也就是說,我這裏是2.0的 就要把4.0改爲2.0 ,網上還有人說把requestValidationMode這部分刪除就好了,等等 到最後我才知道,全部報錯的地方 都只是2.0配置文件不支持的緣由,直接刪除便可,固然不刪也不影響,我這裏是刪除了的,由於我是一個 完美主義者,不喜歡看到有報錯O(∩_∩)O哈哈~。測試

好了,進入正題,以上只是解決編譯不經過的問題,其實最爲重要的是如下部分ueditor.config.js 這個文件 纔是核心啊,如今想一想 我被坑了,並且還坑的不淺 我擦!!!網站

先來看看 原始的 文件在來看看 我配置好的文件:來說講紅色框的問題,先看原始的圖片的最上部分框和我配置好的第一張圖片的框,觀察window.UEDITOR_HOME_URL = "/ManagePage/ueditor"  這部分,原始版本沒有配置,我這裏添了的,他的做用是肯定ueditor這個插件在你的項目中的位置,沒有這句話會報不少錯,錯誤的中心都是找不到某某文件,如今想一想,這句話纔是核心啊,url

在來看看原始圖片的第二個框:這部分就是配置圖片上傳的地方,注意看  原始版本有些地方被註解了,這些註解會影響圖片上傳彈出框的效果:,這就是被註解的效果,你只用將這部分的註解都去掉就好了,在看看原始圖片的第三個框:其實沒有做用,這部分能夠根據你的需求 選擇是否註解,這裏不影響圖片上傳,spa

好了,到此爲止 若是你還報如下錯誤:,那麼你就能夠在imageUp設置斷點監視如下,簡單的說一下這個錯的緣由,500 Internal.....錯誤,一般咱們會聯想到 編譯錯誤,剛開始的時候我也想到了這個緣由,只是不知道如何處理,後來,咱們 頭 直接把error 後面那部分複製到瀏覽器的地址中,執行如圖: 根據返回來的 這些字符 咱們就能推斷 錯誤中下面那部分的 緣由了,是由於上傳成功後url 、title等都爲空形成的,解決辦法是:在imageUp 設置斷點監視如下:個人結果是:根據圖中紅色框部分,咱們能夠推測:傳遞過來的參數是upload1 字符串,這裏他進行 Convert.toInt32 固然會報錯,就形成了 上面上傳報錯的狀況,解決辦法是:直接把上傳過來的參數做爲存儲的地址便可。至此  大功告成了。.net

若是 你的圖片上傳還出問題 就在百度中收索:ueditor1_3_5-utf8-net .netFramwork 2.0版本 在csdn中 我上傳了 2.0 和 4.0 兩個版本。4.0的 就收ueditor1_3_5-utf8-net .netFramwork 4.0版本   裏面有完整配置。

相關文章
相關標籤/搜索