我们的富文本编辑器不能没有图片上传尤其是截图上传,下面我来教大家怎么实现MarkDown富文本编辑器截图上传和图片上传。

1.配置编辑器到html页

<div id="test-editormd">
<textarea id="articleContent" style="display: none;">@Html.Raw(Model.Context)</textarea>
</div>

2.初始化需要配置图片上传

$(function () {
testEditor = editormd("test-editormd", {
width: "99%",
height: ,
syncScrolling: "single",
path: "/Lib/MarkDown/lib/",
saveHTMLToTextarea: true,
emoji: true,
//图片上传
imageUpload: true,
imageFormats: ["jpg", "jpeg", "gif", "png", "bmp", "webp"],
imageUploadURL: "/Editor/UpImage/@Model.Id"
}); });

3.截图上传功能添加

$("#test-editormd").on('paste', function (ev) {
var items = (event.clipboardData || event.originalEvent.clipboardData).items;
for (var index in items) {
var item = items[index];
if (item.kind === 'file') {
var blob = item.getAsFile();
var reader = new FileReader();
reader.onload = function (event) {
//将剪切板中复制信息转换成一种base64格式字符串
var base64 = event.target.result;
//ajax上传图片
$.ajax({
url: "/Editor/UpladFilePIC/@Model.Id",
type: 'post',
data: { 'base': base64},
async: false,
dataType: 'json',
success: function (res) {
if(res.code==)//新一行的图片显示
testEditor.insertValue("\n![" + "image.png" + "](" + res.msg + ")");
},
error: function () {
alert('图片上传错误');
}
});
}
}; // data url!
var url = reader.readAsDataURL(blob);
}
});

4.后台实现图片保存

(1)截图保存

[HttpPost]
public string UpladFilePIC(long? id)//id传过来,如需保存可以备用
{
IFormCollection fc = HttpContext.Request.Form;
string savePath = string.Empty;
int code = ;
string msg = "";
string base64 = fc["base"];
if (base64 != null)
{
string[] spl = base64.Split(',');
string getImgFormat = spl[].Split(':')[].Split('/')[].Split(';')[];
byte[] arr2 = Convert.FromBase64String(spl[]);
//上传到服务器
DateTime today = DateTime.Today;
string md5 = CommonHelper.CalcMD5(spl[]);
string upFileName = md5 + "." + getImgFormat;//生成随机文件名( System.Guid.NewGuid().ToString() )
var pathStart = ConfigHelper.GetSectionValue("FileMap:ImgPath") + DateTime.Now.Year + "/" + DateTime.Now.Month + "/";
if (System.IO.Directory.Exists(pathStart) == false)//如果不存在新建
{
System.IO.Directory.CreateDirectory(pathStart);
}
var filePath = pathStart + upFileName;
string pathNew = ConfigHelper.GetSectionValue("FileMap:ImgWeb") + filePath.Replace(ConfigHelper.GetSectionValue("FileMap:ImgPath"), "");
using (MemoryStream memoryStream = new MemoryStream(arr2, , arr2.Length))
{
memoryStream.Write(arr2, , arr2.Length);
System.DrawingCore.Image image = System.DrawingCore.Image.FromStream(memoryStream);// 转成图片
image.Save(filePath); // 将图片存到本地
code = ;
msg = pathNew;
}
}
string jsonResult = CommonHelper.GetJsonResult(code, msg);
return jsonResult;
}

(2)上传保存

public JsonResult UpImage(long? id)//id传过来,如需保存可以备用
{
int success = ;
string msg = "";
string pathNew = "";
try
{
var date = Request;
var files = Request.Form.Files;
foreach (var formFile in files)
{
if (formFile.Length > )
{
string fileExt = formFile.FileName.Substring(formFile.FileName.LastIndexOf(".") + , (formFile.FileName.Length - formFile.FileName.LastIndexOf(".") - )); //扩展名
long fileSize = formFile.Length; //获得文件大小,以字节为单位
string md5 = CommonHelper.CalcMD5(formFile.OpenReadStream());
string newFileName = md5 + "." + fileExt; //MD5加密生成文件名保证文件不会重复上传
var pathStart = ConfigHelper.GetSectionValue("FileMap:ImgPath") + DateTime.Now.Year + "/" + DateTime.Now.Month + "/";
if (System.IO.Directory.Exists(pathStart) == false)//如果不存在新建
{
System.IO.Directory.CreateDirectory(pathStart);
}
var filePath = pathStart + newFileName;
pathNew = ConfigHelper.GetSectionValue("FileMap:ImgWeb") + filePath.Replace(ConfigHelper.GetSectionValue("FileMap:ImgPath"), "");
using (var stream = new FileStream(filePath, FileMode.Create))
{ formFile.CopyTo(stream);
success = ;
}
}
} }
catch (Exception ex)
{
success = ;
msg = ex.ToString();
}
var obj = new { success = success, url = pathNew, message = msg };
return Json(obj);
}

5.效果图

相关推荐:

1.在Asp.Net或.Net Core中配置使用MarkDown富文本编辑器有开源模板代码(代码是.net core3.0版本)

2.MarkDown富文本编辑器怎么加载模板文件

开源地址 动动小手,点个推荐吧!

注意:我们机遇屋该项目将长期为大家提供asp.net core各种好用demo,旨在帮助.net开发者提升竞争力和开发速度,建议尽早收藏该模板集合项目

 

 
 

在Asp.Net Core中配置使用MarkDown富文本编辑器实现图片上传和截图上传(开源代码.net core3.0)的更多相关文章

  1. Asp.Net Core中配置使用Kindeditor富文本编辑器实现图片上传和截图上传及文件管理和上传(开源代码.net core3.0)

    KindEditor使用JavaScript编写,可以无缝的于Java..NET.PHP.ASP等程序接合. KindEditor非常适合在CMS.商城.论坛.博客.Wiki.电子邮件等互联网应用上使 ...

  2. 在Asp.Net或.Net Core中配置使用MarkDown富文本编辑器有开源模板代码(代码是.net core3.0版本)

    研究如何使用Markdown你们可能要花好几天才能搞定,但是看我的文章或者下载了源码,你搞定一般在10分钟之内.我先给各位介绍下它: Markdown 是一种轻量级标记语言,它允许人们使用易读易写的纯 ...

  3. MarkDown富文本编辑器怎么加载模板文件

    我们只需要一段加载代码就可以搞定MarkDown加载模板文件. $("#md-demo").bind('click', function () { $.get("/Lib ...

  4. 一劳永逸:域名支持通配符,ASP.NET Core中配置CORS更轻松

    ASP.NET Core 内置了对 CORS 的支持,使用很简单,只需先在 Startup 的 ConfigureServices() 中添加 CORS 策略: public void Configu ...

  5. 一劳永逸:域名支持通配符,ASP.NET Core中配置CORS

    ASP.NET Core 内置了对 CORS 的支持,使用很简单,只需先在 Startup 的 ConfigureServices() 中添加 CORS 策略: public void Configu ...

  6. ASP.NET Core中配置监听URLs的五种方式

    原文: 5 ways to set the URLs for an ASP.NET Core app 作者: Andrew Lock 译者: Lamond Lu 默认情况下,ASP. NET Core ...

  7. 【aspnetcore】在asp.net core中配置使用AutoMapper

    网上使用AutoMapper的文章很多,就不多说了.这里主要记录一下怎么在项目中配置和使用. 首先是从NuGet获取AutoMapper. 在Startup.cs文件中注册AutoMapper服务 p ...

  8. 务必收藏备用:.net core中通过Json或直接获取图形验证码(数字验证码、字母验证码、混合验证码),有源代码全实战demo(开源代码.net core3.0)

    很多人写的博客大家看了会一知半解,不知道怎么用,应该引用什么类库或者代码不全,这样很多小白很是头疼,尤其是尝新技术更是如此.我们这边不止告诉你步骤,而且还提供开源demo.随着时间的推移,我们的dem ...

  9. csdn的富文本编辑器(html)格式的文章,添加的代码格式粘贴到项目中总是不对,我这里是maven的pom文件。

    在用富文本编辑器(html)格式编辑的时候,总是出现将pom文件的配置从csdn粘贴到项目中发现很多红,是因为自己在设置的时候有问题. 因为我们的是pom.xml,这里原来设置的java呀或者js为了 ...

随机推荐

  1. 用故事说透 HTTPS

    本文来自素燕公众号,原文地址:用故事说透 HTTPS 故事中的主演:小华今年上大一,这是她第一次离开父母,独自一人到北京上学.今天妈妈的生日,想了想要给妈妈一个祝福,便给妈妈发了条消息:妈妈收到这条消 ...

  2. ReadWriteLock场景应用解析

    本人免费整理了Java高级资料,涵盖了Java.Redis.MongoDB.MySQL.Zookeeper.Spring Cloud.Dubbo高并发分布式等教程,一共30G,需要自己领取.传送门:h ...

  3. c++--语言本身

    c++ 面向对象概念(cout cin 类.对象 面向对象和面向过程求解问题) 易犯错误模型(引入成员函数的必要性) C语言和C++语言的关系 namespace 定义(嵌套).使用.标准命名空间st ...

  4. 集合系列 Map(十五):TreeMap

    TreeMap 是 Map 集合的有序实现,其底层是基于红黑树的实现,能够早 log(n) 时间内完成 get.put 和 remove 操作. public class TreeMap<K,V ...

  5. swoole如何使php永久运行

    有需要学习交流的友人请加入交流群的咱们一起,有问题一起交流,一起进步!前提是你是学技术的.感谢阅读! 点此加入该群​jq.qq.com soole可以通过开启守护进程使PHP永久运行. 守护进程化.设 ...

  6. 系统 (一) Windows10安装Ubuntu子系统

    前言 本文将基于 Windows10专业版 安装 Ubuntu子系统 1.控制面板 -> 程序 -> 选择启用或关闭Windows功能 -> 勾上 适用Linux的Windwos子系 ...

  7. 精通awk系列(2):本教程测试所用示例文件

    回到: Linux系列文章 Shell系列文章 Awk系列文章 本系列的awk教程中,将大量使用到如下示例文件a.txt. ID name gender age email phone 1 Bob m ...

  8. JqueryOn绑定事件方法介绍

    JqueryOn绑定事件方法介绍 1. 简介 (1) On()方法在被选及子元素上添加一个或多个事件处理程序 (2) 在jquery 版本1.7起,on()方法是bind(),live()和deleg ...

  9. css里的背景属性有哪些,如何去使用哪些属性

    分类:纯色背景    背景图像 1.背景颜色 background-color : 任意合法的颜色 和 transparent 2.背景图像 background-image : url(想要加载的图 ...

  10. 欢迎大家Follow me!微软MVP罗勇(Dynamics CRM方向2015-2018年)欢迎您!

    我是一名八零后,来自湖南乡村,2006年毕业于大连大学工商管理专业,主要靠自学走上了编程之路.从2012年开始接触Dynamics CRM 2011,一直从事Dynamics CRM方面工作,熟悉Dy ...