還是接著之前說過的最近在寫一個BootStrap網頁....然後要用富文本編輯器,隨便搜了下就選了這貨 然後發現了很尷尬的問題...圖片上傳功能無效....然後各種搜索各種無果...最後怒翻Summernote官方文檔總算解決了,總之寫下解決過程 後端部分就不提供代碼了,滿大街都是,這裡假設後端拿到 ...
還是接著之前說過的最近在寫一個BootStrap網頁....然後要用富文本編輯器,隨便搜了下就選了這貨
然後發現了很尷尬的問題...圖片上傳功能無效....然後各種搜索各種無果...最後怒翻Summernote官方文檔總算解決了,總之寫下解決過程
後端部分就不提供代碼了,滿大街都是,這裡假設後端拿到上傳文件後返迴文件的地址
首先附上參考資料:Summernote官方開發文檔
簡單說下Summernote的圖片上傳功能實現方案
首先根據官方文檔提供的API,掛接文件上傳事件,然後自己用JS重新上傳文件,最後用API把圖片插入到編輯框內即可
本來是挺簡單的問題,可惜官方也不知道為什麼居然更改了介面寫法...然後網上搜到的資料全都坑掉了....雖然也有我搜的不夠深入的原因
總之整理下核心的兩個SummernoteAPI,接管文件上傳事件和插入圖片,根據官方文檔說明格式如下
//接管圖片上傳事件
$('#summernote').summernote({
callbacks: {
onImageUpload: function(files) {
// 上傳圖片到伺服器並且插入圖片到編輯框
}
}
});
//插入圖片
$('#summernote').summernote('insertImage', url, filename);
//更加詳細的解釋見上面提供的官網API文檔
然後就可以很輕鬆的實現支持上傳圖片的Summernote編輯框了
代碼如下:
$('#summernote').summernote({
callbacks: {
onImageUpload: function(files) {
//上傳圖片到伺服器,使用了formData對象,至於相容性...據說對低版本IE不太友好
var formData = new FormData();
formData.append('file',files[0]);
$.ajax({
url : 'upload',//後臺文件上傳介面
type : 'POST',
data : formData,
processData : false,
contentType : false,
success : function(data) {
$('#summernote').summernote('insertImage',data,'img');
}
});
}
}
});
最後,這隻實現了一個最簡單的,相容性不怎樣而且完全不考慮錯誤異常提示的圖片上傳功能而已....請根據需要自行修改(如果真的有人看我博客的話