亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JavaScript > 正文

js控件Kindeditor實現圖片自動上傳功能

2019-11-20 09:42:35
字體:
來源:轉載
供稿:網友

Kindeditor是一款功能強大的開源在線HTML編輯器,支持所見即所得的編輯效果。它使用JavaScript編寫,可以無縫地與多個不同的語言環境進行集成,如.NET、PHP、ASP、Java等。官方網站可以查看這里:http://kindeditor.net/index.php

Kindeditor本身提供了許多非常實用的插件,由于代碼開源,開發人員可以根據需要對其進行任意擴展和修改。

在使用Kindeditor編輯網站內容時考慮這樣一個場景:編輯人員往往會從其它頁面或者Word文檔將內容復制到Kindeditor編輯器中,而不會從一張白紙開始編寫內容。如果所復制的內容中包含圖片,則需要首先將圖片從源地址下載到本地,然后將其上傳到本網站所在的服務器,否則圖片仍然會指向你所復制的頁面或者文檔,這會導致圖片可能在頁面中無法正確打開。編輯人員往往要處理許多的文檔,這樣的操作無疑非常繁瑣。能否讓Kindeditor自動識別粘貼到其中的內容,并將圖片自動上傳到服務器呢?下面的代碼實現了這一功能。

有關如何在頁面中使用Kindeditor可以去查看官方網站的文檔,這里不再詳細介紹。

實現該功能的基本思路:在Kindeditor編輯器的keyup事件中添加代碼,以檢查編輯器的內容中是否包含圖片;找出需要自動上傳到服務器的圖片,通過Ajax方式調用圖片上傳程序將圖片上傳到服務器;在Ajax的回調函數中將對應圖片的src地址修改為本地相對地址。

該功能不支持將Word中的圖片復制出來并上傳到服務器。 


上圖是最終實現效果。程序會自動識別編輯器中的內容,如果有圖片需要上傳,則會在編輯器的頂部顯示一條提示信息。用戶點擊“上傳”鏈接,程序會通過Ajax請求調用圖片上傳程序,并在回調函數中將對應圖片的src地址修改為本地相對地址。

具體實現步驟及相關代碼: 

1. Kindeditor編輯器修改 

  找到kindeditor.js文件,在keyup()事件中添加自定義代碼。不同版本的Kindeditor所提供的代碼差別可能會比較大,需要借助于官方文檔進行查找。本文基于Kindeditor 4.1.10版本。 


2. auto.js文件代碼 

function df() { var haspicContainer = document.getElementById("has_pic"); if (haspicContainer == null) {  haspicContainer = document.createElement("div");  haspicContainer.id = "has_pic";  haspicContainer.innerHTML = "<input type='text' id='piclist' value='' style='display:none;'/><div id='upload'><b>您有圖片需要上傳到服務器</b>  <a href='javascript:uploadpic();' >上傳</a></div><div id='confirm'></div>";  $(".ke-toolbar").after(haspicContainer); } var img = $(".ke-edit-iframe").contents().find("img"); var piccount = 0; var sstr = ""; $(img).each(function (i) {  var that = $(this);  if (that.attr("src").indexOf("http://") >= 0 || that.attr("src").indexOf("https://") >= 0) {   piccount++;   if (i == $(img).length - 1)    sstr += that.attr("src");   else    sstr += that.attr("src") + "|";  } }); $("#piclist").val(sstr); document.getElementById("has_pic").style.display = (piccount > 0) ? "block" : "none";}function closeupload() { $("#has_pic").hide(); $("#upload").show();}function uploadpic() { var piclist = encodeURI($("#piclist").val()); if (piclist.length == 0) return false; $.ajax({  url: "asp.net/uploadpic.ashx",  data: "pic=" + piclist,  type: "GET",  beforeSend: function () {   $("#upload").hide();   $("#confirm").text("正在上傳中...");  },  success: function (msg) {   if (msg !== "") {    var str = new Array();    str = msg.split('|');    var img = $(".ke-edit-iframe").contents().find("img");    $(img).each(function (i) {     var that = $(this);     if (that.attr("src").indexOf("http://") >= 0 || that.attr("src").indexOf("https://") >= 0) {      that.attr("src", "/uploads/image/" + str[i]);      that.attr("data-ke-src", "/uploads/image/" + str[i]);     }    });    $("#confirm").html(img.length + "張圖片已經上傳成功!  <a href='javascript:closeupload();'>關閉</a>");   }   else $("#confirm").text("上傳失??!");  } });}

  其中的$(".ke-edit-iframe").contents().find("img")用來查找編輯器內容中的所有圖片。默認情況下,編輯器的內容被存放在iframe元素中,該iframe擁有class="ke-edit-iframe"的屬性。程序會判斷每個圖片src屬性的值中是否包含"http://"或者"https://",從而確定該圖片是遠程圖片還是本地圖片。如果圖片為遠程圖片,則通過jQuery的ajax方法調用uploadpic.ashx將圖片上傳到服務器。同時在回調函數中修改對應圖片的src地址。

3. uploadpic.ashx文件代碼

public class uploadpic : IHttpHandler{ public void ProcessRequest(HttpContext context) {  context.Response.ContentType = "text/plain";  string pic = context.Request.QueryString["pic"];  string[] arr = pic.Split('|');  string sstr = "";  UpLoadIMG st = new UpLoadIMG();  for (int i = 0; i < arr.Length; i++)  {   if (arr[i].IndexOf("http://") >= 0 || arr[i].IndexOf("https://") >= 0)   {    string std = st.SaveUrlPics(arr[i], "../../uploads/image/");    if (std.Length > 0)    {     if (i == arr.Length - 1)      sstr += std;     else      sstr += std + "|";    }   }  }  context.Response.Write(sstr); } public bool IsReusable {  get  {   return false;  } }}public class UpLoadIMG{ public string SaveUrlPics(string imgurlAry, string path) {  string strHTML = "";  string dirPath = HttpContext.Current.Server.MapPath(path);  try  {   if (!Directory.Exists(dirPath))   {    Directory.CreateDirectory(dirPath);   }   string ymd = DateTime.Now.ToString("yyyyMMdd", DateTimeFormatInfo.InvariantInfo);   dirPath += ymd + "/";   if (!Directory.Exists(dirPath))   {    Directory.CreateDirectory(dirPath);   }   string newFileName = DateTime.Now.ToString("yyyyMMddHHmmss_ffff", DateTimeFormatInfo.InvariantInfo) + imgurlAry.Substring(imgurlAry.LastIndexOf("."));   WebClient wc = new WebClient();   wc.DownloadFile(imgurlAry, dirPath + newFileName);   strHTML = ymd + "/" + newFileName;  }  catch (Exception ex)  {   //return ex.Message;  }  return strHTML; }}

  遠程圖片通過WebClient方法下載到服務器的相對路徑"/uploads/image/"中,并且會按照日期自動生成文件夾和對應的文件名。返回的結果中包含了以"|"分隔的所有圖片的本地相對地址,在步驟2的auto.js文件的uploadpic()函數中,回調方法success獲取到該值并進行解析,將地址賦值給對應圖片的src屬性。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日韩视频在线观看免费| 欧美日韩在线视频一区二区| 一区二区欧美在线| 成人国产精品久久久久久亚洲| 欧美成人免费大片| 38少妇精品导航| 日韩精品在线免费| 国产91精品网站| 97超级碰碰碰久久久| 日韩免费高清在线观看| 欧美黑人巨大精品一区二区| 最近2019中文免费高清视频观看www99| 成人欧美在线视频| 国产美女精品免费电影| 国产精品福利在线观看| 国产精品男女猛烈高潮激情| 日韩在线视频观看| 九九久久国产精品| 欧美亚洲在线播放| 欧美一级电影在线| 精品久久久免费| 欧美亚洲国产视频| 欧美专区福利在线| 福利视频导航一区| 日韩精品视频在线免费观看| 亚洲第一视频网站| 日韩福利在线播放| 亚洲黄色www网站| 日韩av最新在线| 国产亚洲精品va在线观看| 亚洲美女精品久久| 91精品视频一区| 国内精品免费午夜毛片| 国产视频精品xxxx| 日韩av一区在线观看| 久久精品国产亚洲精品| xxxxx91麻豆| 国产精品情侣自拍| 欧美成人精品在线| 91九色视频导航| 亚洲欧洲黄色网| 国产欧美日韩精品丝袜高跟鞋| 亚洲女人天堂av| 欧美性生交xxxxx久久久| 中文字幕一区日韩电影| 奇米四色中文综合久久| 欧美色另类天堂2015| 午夜精品国产精品大乳美女| 疯狂做受xxxx高潮欧美日本| 精品国产成人在线| 青青草99啪国产免费| 欧美日韩国产精品一区二区不卡中文| 欧美日韩国产中字| 一二美女精品欧洲| 欧美激情一区二区三级高清视频| 久久久99久久精品女同性| 国产一区二区久久精品| 97成人在线视频| 久久久免费av| 亚洲欧美日韩天堂一区二区| 日韩高清a**址| 欧美午夜性色大片在线观看| 中文字幕精品在线视频| 伊人青青综合网站| 亚洲欧洲一区二区三区在线观看| 日韩一区二区三区在线播放| 91精品啪在线观看麻豆免费| 久久成人18免费网站| 精品视频中文字幕| 久久久国产精品一区| 国产香蕉一区二区三区在线视频| 久久夜色精品国产亚洲aⅴ| 亚洲91av视频| 亚洲精品女av网站| 国产日产欧美a一级在线| 欧美精品videos性欧美| 久久91亚洲精品中文字幕| 精品福利樱桃av导航| 97色在线观看| 2019国产精品自在线拍国产不卡| 亚洲综合av影视| 色综合天天狠天天透天天伊人| 欧美日韩福利在线观看| 中文字幕免费精品一区| 欧美寡妇偷汉性猛交| 欧美美最猛性xxxxxx| 日韩av影视在线| 国产91成人video| 久久精品国产精品亚洲| 欧美亚洲视频一区二区| 久久久久久久久久久国产| 久久91超碰青草是什么| 国产精品激情自拍| 成人黄色午夜影院| 性欧美xxxx视频在线观看| 国产精品日韩欧美大师| 在线中文字幕日韩| 91香蕉国产在线观看| 国产一区二区三区在线播放免费观看| 日韩暖暖在线视频| 久久成人精品电影| 亚洲无限乱码一二三四麻| 亚洲成人国产精品| 亚洲欧美一区二区三区四区| 日韩成人网免费视频| 91欧美视频网站| 国产精品爱啪在线线免费观看| 久久精品影视伊人网| 亚洲精品视频在线播放| 91免费版网站入口| 久久视频国产精品免费视频在线| 日韩欧美高清视频| 久久夜精品va视频免费观看| 久久久久久尹人网香蕉| 91在线视频九色| 欧日韩在线观看| 久久国产精品偷| 亚洲一级黄色av| 国产精品中文字幕在线| 国产精品一区二区三| 色99之美女主播在线视频| 91牛牛免费视频| 日韩中文有码在线视频| 91网站在线免费观看| 欧美国产亚洲精品久久久8v| 欧美理论电影在线观看| 亚洲国产91精品在线观看| 日韩精品亚洲视频| 日本韩国欧美精品大片卡二| 国产精品麻豆va在线播放| 亚洲黄页视频免费观看| 中文字幕亚洲精品| 在线日韩欧美视频| 日本aⅴ大伊香蕉精品视频| 亚洲国产成人久久综合| 色综合老司机第九色激情| 亚洲欧美日韩国产精品| 欧美在线视频免费播放| 91精品国产一区| 日韩精品亚洲元码| 2024亚洲男人天堂| 欧美激情亚洲综合一区| 国产欧美日韩91| 欧美一区二区三区图| 国产精品成人久久久久| 日韩中文字幕免费看| 欧美激情免费在线| 国产日韩精品在线观看| 欧美成人精品三级在线观看| 高清欧美一区二区三区| 日韩激情在线视频| 91久久中文字幕| 久久精品成人欧美大片古装| www国产精品com| 国产成人拍精品视频午夜网站| 欲色天天网综合久久| 久久免费视频观看| 欧美激情一区二区三区成人| 8050国产精品久久久久久| 日韩一区二区欧美| 亚洲国产成人在线播放| 日韩精品在线免费播放| 26uuu日韩精品一区二区| 色无极亚洲影院|