CKEditor與dotnetcore實現(xiàn)圖片上傳功能
本文實例為大家分享了CKEditor與dotnetcore實現(xiàn)圖片上傳的具體代碼,供大家參考,具體內(nèi)容如下
CKEditor的使用
1.引入js庫
<script src="https://cdn.ckeditor.com/4.6.1/standard-all/ckeditor.js"></script>
2.定義一個textarea標(biāo)簽
<textarea id="editor"> </textarea>
3.用CkEditor替換textarea即可使用基本功能
CKEDITOR.replace('editor');
4.配置CkEditor
添加圖片上傳,代碼插入工具
CKEDITOR.replace('editor-box', {
//GitHub地址:https://github.com/ckeditor
toolbar: [
{ name: 'document', items: ['Source'] },
{ name: 'basicstyles', items: ['Bold', 'Italic'] },
{ name: 'paragraph', items: ['NumberedList', 'BulletedList', '-', 'Outdent', 'Indent', '-', 'Blockquote'] },
{ name: 'links', items: ['Link', 'Unlink'] },
{ name: 'insert', items: ['Image','CodeSnippet'] },
{ name: 'styles', items: ['Format', 'Styles'] }
],
filebrowserImageUploadUrl: '/Blogs/UploadImageUrl', //配置圖片上傳后臺Url
customConfig: '',
extraPlugins: 'codesnippet,image2,uploadimage',
removePlugins: 'image',
//mathJaxLib: 'https://cdn.mathjax.org/mathjax/2.6-latest/MathJax.js?config=TeX-AMS_HTML',
codeSnippet_theme: 'ir_black',
height: 450,
contentsCss: ['https://cdn.ckeditor.com/4.6.1/standard-all/contents.css'],
format_tags: 'p;h1;h2;h3;pre',
removeDialogTabs: 'image:advanced;link:advanced;link:target',
stylesSet: [
/* Inline Styles */
{ name: 'Marker', element: 'span', attributes: { 'class': 'marker' } },
{ name: 'Cited Work', element: 'cite' },
{ name: 'Inline Quotation', element: 'q' },
/* Object Styles */
{
name: 'Special Container',
element: 'div',
styles: {
padding: '5px 10px',
background: '#eee',
border: '1px solid #ccc'
}
},
{
name: 'Compact table',
element: 'table',
attributes: {
cellpadding: '5',
cellspacing: '0',
border: '1',
bordercolor: '#ccc'
},
styles: {
'border-collapse': 'collapse'
}
},
{ name: 'Borderless Table', element: 'table', styles: { 'border-style': 'hidden', 'background-color': '#E6E6FA' } },
{ name: 'Square Bulleted List', element: 'ul', styles: { 'list-style-type': 'square' } },
/* Widget Styles */
{ name: 'Illustration', type: 'widget', widget: 'image', attributes: { 'class': 'image-illustration' } },
{ name: 'Featured snippet', type: 'widget', widget: 'codeSnippet', attributes: { 'class': 'code-featured' } },
{ name: 'Featured formula', type: 'widget', widget: 'mathjax', attributes: { 'class': 'math-featured' } }
]
});
5.后臺接收圖片
/// <summary>
/// 圖片上傳
/// </summary>
/// <param name="env"></param>
/// <returns></returns>
public async Task<IActionResult> UploadImageUrl([FromServices]IHostingEnvironment env)
{
// CKEditor提交的很重要的一個參數(shù)
string callback = Request.Query["CKEditorFuncNum"];
var form = Request.Form;
var img = form.Files[0]; //獲取圖片
string fileName = img.FileName;
var openReadStream = img.OpenReadStream();
byte[] buff = new byte[openReadStream.Length];
await openReadStream.ReadAsync(buff, 0, buff.Length);
string filenameGuid = Guid.NewGuid().ToString();
var bowerPath = PathUtils.GetSavePath(filenameGuid, true) + ".jpg";//獲取到圖片保存的路徑,這邊根據(jù)自己的實現(xiàn)
var savePath = Path.Combine(env.WebRootPath, bowerPath);
using (FileStream fs = new FileStream(savePath, FileMode.Create))
{
await fs.WriteAsync(buff, 0, buff.Length);
//服務(wù)器返回JavaScript腳本
string result = $"<script type=\"text/javascript\">window.parent.CKEDITOR.tools.callFunction(\"{callback}\", \"{"/"+bowerPath}\", \"\");</script>";
Response.ContentType = "text/html;charset=UTF-8";
return Content(result);
}
}
6.注意
服務(wù)器返回需要加上這個,否則會遇到前端頁面不執(zhí)行返回的JavaScript腳本的問題
Response.ContentType = "text/html;charset=UTF-8";
配置完成即可使用圖片上傳功能

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
ASP.NET仿新浪微博下拉加載更多數(shù)據(jù)瀑布流效果
本篇文章介紹了如何實現(xiàn)下拉加載更多數(shù)據(jù)瀑布流的效果,這種效果最近很流行,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2015-07-07
解決Visual Studio 2012 Update 4 RC啟動調(diào)試失敗的方案
這篇文章主要為大家詳細(xì)介紹了Visual Studio 2012 Update 4 RC啟動調(diào)試失敗的解決方案,感興趣的小伙伴們可以參考一下2016-05-05
Asp.net MVC中Razor常見的問題與解決方法總結(jié)
這篇文章主要給大家介紹了關(guān)于Asp.net MVC中Razor常見的問題與解決方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面跟著小編來一起學(xué)習(xí)學(xué)習(xí)吧。2017-08-08
.Net Core3.0 配置Configuration的實現(xiàn)
這篇文章主要介紹了.Net Core3.0 配置Configuration的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-10-10

