描述:最近c#项目中使用富文本编辑器Simditor,记录一下以便以后查看。

注:此项目不是MVC架构的。

1.引用文件

项目中引用相应的css和js文件,注意顺序不能打乱,否则富文本编辑器不会正常显示。

    <link rel="stylesheet" type="text/css" href="../styles/simditor.css" />
    <script type="text/javascript" src="../scripts/jquery.min.js"></script>
<script type="text/javascript" src="../scripts/simditor/module.js"></script>
<script type="text/javascript" src="../scripts/simditor/hotkeys.js"></script>
<script type="text/javascript" src="../scripts/simditor/uploader.js"></script>
<script type="text/javascript" src="../scripts/simditor/simditor.js"></script>

2.HTML中富文本的定义

<div >
<h5>故障描述:</h5>
<div class="view">
<textarea id="Describe"></textarea>
</div>
</div>

3.初始化富文本

注意的参数:

textarea: $('#Describe'), //对应的html中富文本的ID。
url: '../handlersNew/MGuideData.ashx', //对应的服务器的地址。(文件上传的接口地址)
params: { type: "UploadPic" }, //以键值对的方式,传递给后台的参数,若无填写null即可
fileKey: 'fileDataFileName',  //服务器获取文件数据的参数名
<script type="text/javascript">
var editor1;
  $(document).ready(function () {
  editor1 = new Simditor({
  textarea: $('#Describe'),
  placeholder: '这里输入图文内容...',
  pasteImage: true,
  toolbar: ['title', 'fontScale', 'alignment', 'bold', 'italic', 'underline', 'strikethrough', 'color', '|',
           'ol', 'ul', 'blockquote', 'code', 'table', '|', 'link', 'image', 'hr', '|', 'indent', 'outdent'],
upload: {
  url: '../handlersNew/MGuideData.ashx', //文件上传的接口地址
  params: { type: "UploadPic" }, //键值对,指定文件上传接口的额外参数,上传的时候随文件一起提交
  fileKey: 'fileDataFileName', //服务器端获取文件数据的参数名
  connectionCount: 3,
  leaveConfirm: '正在上传文件'
  }
  });
});
</script>

4.页面效果

页面中有“上传图片”和“外链图片”两个按钮供选择。

5.C#后台保存图片代码

后台图片的保存代码,HttpContext.Current.Request.Files["fileDataFileName"]就是上面"3"中的fileKey

public void ProcessRequest(HttpContext context)
{
  //获取页面数据
string type = context.Request["type"];
if (type.Equals("UploadPic")) //富文本上传图片
{
  #region 富文本上传图片   HttpPostedFile file = HttpContext.Current.Request.Files["fileDataFileName"];
if (file != null)
{
  //生成文件夹路径
  string path = userName + "_" + DateTime.Now.Year
+ DateTime.Now.Month.ToString("D2")
+ DateTime.Now.Day.ToString("D2");
  string strPath = System.Web.HttpContext.Current.Server.MapPath(string.Format("/Resource/Upload/{0}/", path)); //生成新的文件名+时间后缀
string fileName = Path.GetFileNameWithoutExtension(file.FileName);
string FileEextension = Path.GetExtension(file.FileName);
fileName = fileName + "-"
      + DateTime.Now.Year + "-"
+ DateTime.Now.Month + "-"
+ DateTime.Now.Day + "-"
+ DateTime.Now.Hour + "-"
+ DateTime.Now.Minute
+ FileEextension;
      //判断文件夹是否存在,若不存在则创建
if (!Directory.Exists(strPath))
  Directory.CreateDirectory(strPath);
      //将2个字符串组合成一个路径
string filePath = Path.Combine(strPath, fileName);
      //保存操作
file.SaveAs(filePath);
szJson = "{\"isSuccess\":1,\"msg\":\"上传成功。\"}";
}
else
  szJson = "{\"isSuccess\":0,\"msg\":\"上传失败。\"}"; #endregion
  }
}

6.Html前端页面的"保存"代码

前端页面获取富文本的数据用getValue,注意用post方式,因富文本含有大量数据,get方式会报错:提示url地址过长。

因含有富文本所以必须进行编码escape,再传递到后台,否则会提示:从客户端(*****)中检测到有潜在危险的......(因为不是MVC框架,暂时无法用别的方式解决)

$.ajax({
  type:"post",
url: '../handlersNew/MGuideData.ashx',
data: {
  // ...
"describe": escape(editor1.getValue()), //编码
},
dataType: 'json',
success: function (data) {
  if (data.isSuccess == 0) { //错误消息
    // ...
  }
  else { //成功操作
    // ...
  }
  }
});

7.c#后端"保存"按钮

最后就是整个页面参数的后台保存操作。因情况不一,所以就不贴代码了。

context.Request["describe"]   //后台便可以获取该前端传递到后台的参数

8.页面展示富文本保存的数据

前端页面显示时,用setValue即可。因保存时编码了,所以页面显示数据必须进行解码unescape才能正常显示。
//解码显示
editor1.setValue(unescape(describe)); //故障描述

以上是使用富文本编辑器Simditor在C#中带图片上传的全部过程(不是MVC架构的项目)。

仅供参考,如有问题,望指出。

c#中富文本编辑器Simditor带图片上传的全部过程(项目不是mvc架构)的更多相关文章

  1. C#中富文本编辑器Simditor带图片上传的全部过程(MVC架构的项目)

    描述:最近c#项目中使用富文本编辑器Simditor,记录一下以便以后查看. 注:此项目是MVC架构的. 1.引用文件 项目中引用相应的css和js文件,注意顺序不能打乱,否则富文本编辑器不会正常显示 ...

  2. Simditor 富文本编辑器多选图片上传、视频连接插入

    simditor 是一个基于浏览器的所见即所得的文本编辑器.Simditor 富文本编辑器, 支持多选图片上传, 视频连接插入, HTML代码编辑以及常用富文本按钮,支持的浏览器:IE10.Firef ...

  3. wangEditor富文本编辑器使用及图片上传

    引入js文件 <script type="text/javascript" src="style/js/wangEditor.min.js">< ...

  4. 富文本编辑器TInyMCE,本地图片上传(Image Upload)

    TinyMCE 官网 (类似:百度的富文本web编辑器UEditor) 第一步 下载 TinyMCE,解压后放入工程,在需要的HTML页面引入tinymce.min.js. 第二步 下载tinyMCE ...

  5. 富文本之BootStrap-wysiwyg 带图片上传功能

    BootStrap-wysiwyg插件具有良好的编辑功能和展示效果. 一.使用方法在网上有很多,在此记录自己使用过程中的一些问题和解决方式. 相关依赖: bootstrap-wysiwyg.js (核 ...

  6. wangEditor - 轻量级web富文本编辑器(可带图片上传)

    业务需求: 通过后台编辑文章和图片,上传到前端界面,展示新闻消息模块.这个时候,需要一款简洁的编辑器,百度编辑器是最常用的一种,但是功能太过于复杂,而wangEditor - 轻量级web富文本编辑器 ...

  7. DWZ集成的xhEditor编辑器浏览本地图片上传的设置

    有关xhEditor的文件上传配置官方文档链接:http://i.hdu.edu.cn/dcp/dcp/comm/xheditor/demos/demo08.html 一.xhEditor图片上传的配 ...

  8. asp.net 百度编辑器 UEditor 上传图片 图片上传配置 编辑器配置 网络连接错误,请检查配置后重试

    1.配置ueditor/editor_config.js文件,将 //图片上传配置区 ,imageUrl:URL+"net/imageUp.ashx" //图片上传提交地址 ,im ...

  9. markdown编辑器typora本地图片上传到自己的服务器

    typora是windows平台下最受欢迎的markdown书写工具和查看工具,本篇文章将会介绍如何在typora平台使用java脚本程序自动上传本地图片到自己的服务器,从而让markdown文章中的 ...

随机推荐

  1. inf

    下确界 inf,表示下确界,英文名infimum. 对于函数y=f(x),在使f(x)大于等于M成立的所有常数M中,我们把M的最大值max(M)(即函数y=f(x)的最小值)叫做函数y=f(x)的下确 ...

  2. Mysterious Bacteria LightOJ - 1220

    题意: 给出一个数x 求 x = bp  的p的最大值 解析: 算术基本定理 分解质因数 任何一个数x都可以表示为  x == p1a1   *  p2a2  *  ````` * pnan 即  b ...

  3. 【 Gym - 101138K 】 The World of Trains (DP)

    BUPT2017 wintertraining(15) #4E Gym - 101138K 题意 N节车厢的火车,每节车厢容量是1~K,那么有\(K^N\)种火车. 求选择D个连续的且容量相同的车厢的 ...

  4. 【ZOJ2278】Fight for Food(dp)

    BUPT2017 wintertraining(16) #4 F ZOJ - 2278 题意 给定一个10*10以内的地图,和p(P<=30000)只老鼠,给定其出现位置和时间T(T<=1 ...

  5. python—— 写入错误UnicodeEncodeError的解决办法

    在写python爬虫过程中,有时候吧结果写入到txt文件,但是会遇到UnicodeEncodeError. 错误原因—— 把文件内容,写入到文件中时,出错了. 而出错的原因其实是,python系统,在 ...

  6. [hgoi#2019/2/16t2]friend

    题目描述 在一个遥远的国度里有n个人,每个人手上写着4个互不相同的数. 这个国度比较奇怪,如果两个人至少有一个数字相同,则他们是一对朋友. 现在这n个人按序号从左到右排成了一排,每个人都想知道在他左边 ...

  7. outline与border的区别

    在浏览器里,当鼠标点击或使用Tab键让一个链接或者一个radio获得焦点的时候,该元素将会被一个轮廓虚线框围绕.这个轮廓虚线框就是 outline . outline 能告诉用户那一个可以激发事件的h ...

  8. 在任意位置获取应用程序CONTEXT

    Android程序中访问资源时需要提供Context,一般来说只有在各种component中(Activity, Provider等等)才能方便的使用api来获取Context, 而在某些工具类中要获 ...

  9. Linux中配置Aria2 RPC Server

    启动Aria2 RPC Server 直接在终端中执行aria2c --enable-rpc --rpc-allow-origin-all可直接开启RPC服务. 这种方法并不能进行个性化的参数设置,需 ...

  10. 对信号量Semaphore的理解与运用

    转: java笔记--对信号量Semaphore的理解与运用 java Semaphore 信号量的使用: 在java中,提供了信号量Semaphore的支持. Semaphore类是一个计数信号量, ...