CKEditor與dotnetcore實(shí)現(xiàn)圖片上傳功能
本文實(shí)例為大家分享了CKEditor與dotnetcore實(shí)現(xiàn)圖片上傳的具體代碼,供大家參考,具體內(nèi)容如下
CKEditor的使用
1.引入js庫
<script src="https://cdn.ckeditor.com/4.6.1/standard-all/ckeditor.js"></script>
2.定義一個(gè)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', //配置圖片上傳后臺(tái)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.后臺(tái)接收圖片
/// <summary>
/// 圖片上傳
/// </summary>
/// <param name="env"></param>
/// <returns></returns>
public async Task<IActionResult> UploadImageUrl([FromServices]IHostingEnvironment env)
{
// CKEditor提交的很重要的一個(gè)參數(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ù)自己的實(shí)現(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ù)器返回需要加上這個(gè),否則會(huì)遇到前端頁面不執(zhí)行返回的JavaScript腳本的問題
Response.ContentType = "text/html;charset=UTF-8";
配置完成即可使用圖片上傳功能

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
.NET?CORE?鑒權(quán)的實(shí)現(xiàn)示例
本文主要介紹了.NET?CORE?鑒權(quán)的實(shí)現(xiàn)示例,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-02-02
登錄時(shí)記住用戶名和密碼及cookie案例應(yīng)用
本文將實(shí)現(xiàn)登錄時(shí)記住用戶的帳號(hào)密碼,接下來我們來模擬一個(gè)登錄介面,要把這個(gè)登錄的信息記錄至Cookie,還要把Cookie的過期時(shí)間設(shè)置7天之后過期,感興趣的朋友可以參考下,希望本文對你的cookie學(xué)習(xí)有所幫助2013-01-01
[c#]asp.ent下開發(fā)中Tag的開發(fā)技巧
[c#]asp.ent下開發(fā)中Tag的開發(fā)技巧...2007-05-05
C#實(shí)現(xiàn)Web文件上傳的兩種方法實(shí)例代碼
在Web編程中,我們常需要把一些本地文件上傳到Web服務(wù)器上,上傳后,用戶可以通過瀏覽器方便地瀏覽這些文件,應(yīng)用十分廣泛。2013-07-07
asp.net下Repeater使用 AspNetPager分頁控件
AspNetPager針對ASP.NET分頁控件的不足,提出了與眾不同的解決asp.net中分頁問題的方案2010-03-03

