使用UMeditor富文本編輯器上傳圖片

ygfb 9年前發布 | 95K 次閱讀 UMeditor HTML編輯器
 

注:本文系作者原創,但可隨意轉載。  

比如,文檔中js的配置文件給了兩個節點

{
    "imagePathFormat": "upload/image/{yyyy}{mm}{dd}/{time}{rand:6}",
    "imageUrlPrefix": "/myapp/ueditor/net/",
}

但是實際下載下來的UMeditor代碼的js配置文件中給的節點是,

//圖片上傳配置區

,imageUrl:URL+"net/imageUp.ashx" //圖片上傳提交地址

,imagePath:URL + "net/" //圖片修正地址,引用了fixedImagePath,如有特殊需求,可自行配置

,imageFieldName:"upfile" //圖片數據的key,若此處修改,需要在后臺對應文件修改對應參數

問題一、

下載后,直接引用Umeditor,目錄結構大致如下圖,在ASP.NET MVC4項目中,把整個umeditor文件夾放在Scripts下。編輯博客的頁面已經寫好了,啟動程序,進入編輯頁面點擊上傳圖片,進行上傳,報錯。

說明: 在編譯向該請求提供服務所需資源的過程中出現錯誤。請檢查下列特定錯誤詳細信息并適當地修改源代碼。 

編譯器錯誤消息: CS0433: 類型“Lyosaki.Site.Uploader”同時存在于“c:\Users\LiuYu\AppData\Local\Temp \Temporary ASP.NET Files\root\0d2fa058\84067035\App_Web_uploader.cs.c95a9a5.dyxu9rbj.dll”和 “c:\Users\LiuYu\AppData\Local\Temp\Temporary ASP.NET Files\root\0d2fa058\84067035\assembly\dl3\3147e142\84a16ccb_7a2ad101 \Lyosaki.Site.DLL”中

使用UMeditor富文本編輯器上傳圖片

解決方案:因為在imageUp.ashx文件頭部有一句 <%@ Assembly Src="Uploader.cs" %>, 但給出的是相對路徑,系統在默認路徑下找到了多個程序集導致編譯失敗。這里直接把這一句去掉,另外 Uploader.cs沒有命名空間,這里加上命名空間Lyosaki.Site,然后直接在imageUp.ashx里邊using Lyosaki.Site;即可。

問題二、

在不改變現有目錄結構和默認圖片上傳路徑的情況下,圖片上傳地址形如:~/Scripts/umeditor/net/upload/yyyy-MM-dd/Guid.jpg。

所以,我想優化文件組織結構,改變圖片存儲位置到~/Upload/yyyy-MM-dd/Guid.jpg。順便把ashx和cs文件拿出來,放在Scripts文件夾下實在變扭。

這里調試了半天,因為圖片上傳路徑的拼接邏輯實在是混亂,在c#兩個文件里有配置,js里也有相關配置,然后c#上傳完后還要回調js又傳了個路徑回去。。。

解決方案:在根目錄下新建Ashx文件夾,把兩個ashx文件拷過去。在根目錄新建Helper文件夾,把Uploader.cs拷貝進去。

在imageUp文件ProcessRequest方法里修改pathbase為,

//上傳配置string pathbase = "/Upload/";。

代表要上傳文件到 根目錄的Upload文件夾下,但是不能寫成"~/Upload",因為這里路徑后面會回調到js,js無法解析~。

在umeditor.config.js文件中,將圖片上傳配置修改為:

//圖片上傳配置區

, imageUrl: "/Ashx/imageUp.ashx" //圖片上傳提交地址

, imagePath: "" //圖片修正地址,引用了fixedImagePath,如有特殊需求,可自行配置

, imageFieldName: "upfile" //圖片數據的key,若此處修改,需要在后臺對應文件修改對應參數

問題三、

點擊圖片上傳后,彈窗如圖,由于頁面較長,可以上下滾動,但此時,整個“圖片”彈窗是Fixed的,會隨頁面滾動。。。但"本地上傳","網絡圖片"這兩個pannel,以及中間的小電腦圖片和下面那一行文字,確是relative的,滾動到下面,他們不會跟著滾動。。。

導致有幾次我滾動到最下面然后點圖片上傳,卻看不到中間的內容,還以為是網絡問題沒加載出來。。。

使用UMeditor富文本編輯器上傳圖片

解決方案:

在umeditor.css里面加入下面幾行樣式即可。

.edui-tab-pane {

position: fixed !important;

}

.edui-image-dragTip, .edui-image-upload1 {

left: 50% !important;

position: fixed !important;

}

目前暫時還沒有遇到其他問題,但打算在其他地方復用一下它的上傳彈窗和后臺邏輯,先研究研究能否實現。

 本文由用戶 ygfb 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!