1、下載ueditor1.4.3.3 UTF-8的版本
2、新建一個項目,在項目中添加UEditor,把下載好的插件都放在ueditor這個文件夾中,在進行一些基本的配置
3、在根目錄下新建一個為index.aspx的網頁,在進行如下的配置,引用三個js文件,在form表單里面用csript來構造一個頁面,在讓var ue = UE.getEditor("container");來初始化這個頁面。運行后界面都已經出現啦
4、運行index.aspx這個頁面時會報錯,json沒引用之類的,一開始我找了很多方法,后來才看到是沒有添加Newtonsoft.Json.dll的引用,在下載的UEDITOR/net文件的bin文件里找到這個dll動態庫,然后在項目中添加引用。這樣無論是點擊單圖上傳還是多圖上傳都可以啦。那么還有一個問題,這個圖片傳到哪里了呢,就需要更改一下net目錄下的config.json文件
"imageUrlPrefix": " / ", /* 圖片訪問路徑前綴 */
"imagePathFormat": "uploadFile/image/{yyyy}{mm}{dd}/{time}{rand:6}", /* 上傳保存路徑,可以自定義保存路徑和文件名格式 */
這樣的話,上傳的圖片會保存在根目錄的uploadFile/image/上傳圖片的時間 文件夾中,如果沒有建文件夾也沒關系,會自動生成的。如果覺得圖片保存目錄太深了,也可以自定義上面的圖片文件夾。
圖片訪問路徑前綴一點要為空,不然上傳之后就會出錯,圖片出不來。imagepathFormat里的文件夾是自己新建的,我當時只新建了uploadFile里面的image文件夾自己出現了,還有一個文件就是以日期命名的,如果你不需要在包含文件,就可以把后面的{yyyy}這些日期的都刪了。
5.現在圖片已經可以上傳了。但還有一個功能沒完成,就是刪除功能了,我這里要做的是單個圖片的刪除。
6.圖片的刪除,首先在線管理欄目的圖片右上角會有刪除一詞出現,現在就來實現吧。我對樣式美感那些把握的不是那么好,所以直接在網上看了好看的例子,用的他的樣式。
找到ueditor\dialogs\image\image.js這個文件,增加了刪除按鈕,是一把x,這時候已經有了刪除的狀態功能,真正實現刪除的功能是仿照了uploadimage.cs文本編輯器里面自帶的一個上傳類,把它改成刪除類。
1 /* 在這兩句之后添加 */ 2 item.appendChild(img); 3 item.appendChild(icon); 4 5 //增加刪除按鈕 6 item.appendChild($("<span class='delbtn' url='" + list[i].url + "'>✖</span>").click(function (){ 7 var del = $(this); 8 try { 9 window.event.cancelBubble = true; //停止冒泡 10 window.event.returnValue = false; //阻止事件的默認行為 11 window.event.preventDefault(); //取消事件的默認行為 12 window.event.stopPropagation(); //阻止事件的傳播 13 } finally { 14 if (!confirm("確定要刪除嗎?")) return; 15 $.post(editor.getOpt("serverUrl") + "?action=deleteimage", { "path": del.attr("url") }, 16 function (result) { 17 if (result.indexOf("文件刪除成功")>-1) { 18 del.parent().remove(); 19 } 20 21 else alert(result); 22 }); 23 } 24 })[0]); 25 26 27 28 /* 在這一句之前添加 */ 29 this.list.insertBefore(item, this.clearFloat);
在image.css的文件中加入樣式,刪除的圖標更好看一些,我是放在最后。注:樣式是參考另外一篇文章。
1 /* 在線管理刪除按鈕樣式 */ 2 #online li .delbtn { 3 position: absolute; 4 top: 0; 5 right: 0; 6 border: 0; 7 z-index: 3; 8 color: #ffffff; 9 display: inline; 10 font-size: 12px; 11 line-height: 10.5px; 12 padding:3px 5px; 13 text-align: center; 14 background-color: #d9534f; 15 }
刪除類,是自己新建了一個類,放在net/app_code中 DeleteImageHandler.cs
1 using System; 2 using System.Collections.Generic; 3 using System.IO; 4 using System.Linq; 5 using System.Text.RegularExpressions; 6 using System.Web; 7 8 /// <summary> 9 /// UploadHandler 的摘要說明 10 /// </summary> 11 public class DeleteImageHandler : Handler 12 { 13 14 public DeleteConfig deleteConfig { get; private set; } 15 public DeleteResult Result { get; private set; } 16 17 public DeleteImageHandler(HttpContext context, DeleteConfig config) 18 : base(context) 19 { 20 this.deleteConfig = config; 21 this.Result = new DeleteResult() { State = DeleteState.Success }; 22 } 23 24 public override void Process() 25 { 26 27 try 28 { 29 string realpath = Server.MapPath("/ueditor")+"/net/"+deleteConfig.PathFormat; 30 31 bool bl = System.IO.File.Exists(realpath); 32 if (bl) 33 { 34 System.IO.File.Delete(realpath); 35 Result.State = DeleteState.Success; 36 37 } 38 else 39 { 40 Result.State = DeleteState.Fail; 41 } 42 43 44 } 45 catch (Exception e) 46 { 47 Result.State = DeleteState.Fail; 48 // Result.ErrorMessage = e.Message; 49 } 50 finally 51 { 52 WriteResult(); 53 } 54 } 55 56 private void WriteResult() 57 { 58 this.WriteJson(new 59 { 60 state = GetStateMessage(Result.State), 61 // url = Result.Url, 62 //title = Result.OriginFileName, 63 // original = Result.OriginFileName, 64 // error = Result.ErrorMessage 65 }); 66 } 67 68 private string GetStateMessage(DeleteState state) 69 { 70 switch (state) 71 { 72 case DeleteState.Success: 73 return "文件刪除成功"; 74 75 case DeleteState.Fail: 76 return "文件刪除失敗,請檢查圖片路徑是否存在"; 77 } 78 return "未知錯誤"; 79 } 80 81 82 } 83 84 public class DeleteConfig 85 { 86 /// <summary> 87 /// 文件命名規則 88 /// </summary> 89 public string PathFormat { get; set; } 90 91 92 93 } 94 95 public class DeleteResult 96 { 97 public DeleteState State { get; set; } 98 // public string Url { get; set; } 99 //public string OriginFileName { get; set; } 100 101 //public string ErrorMessage { get; set; } 102 } 103 104 public enum DeleteState 105 { 106 Success = 0, 107 Fail = -1, 108 109 }
到了這里已經結束啦,以供參考。如果只是我,肯定不會想到用這樣的方法的,還得感謝我的一位朋友,我才能做好這個模塊,畢竟我也只是個剛進公司的新人,會的也沒那么多,如果沒有大神的指點,也不清楚到底會不會走技術這一條路。