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

 

描述:最近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: '../../WebManage/WebNews/UploadPic', //对应的服务器的地址。(对应Controller中的Action)
params: null, //以键值对的方式,传递给后台的参数,若无填写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: '../../WebManage/WebNews/UploadPic', //文件上传的接口地址
         params: null,                             //键值对,指定文件上传接口的额外参数,上传的时候随文件一起提交
        fileKey: 'fileDataFileName',              //服务器端获取文件数据的参数名
        connectionCount: 3,
        leaveConfirm: '正在上传文件'
     }
   });
 });
 </script> 

 

 

4.页面效果

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

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

 

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

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

        /// <summary>
        /// 编辑器提交图片
        /// </summary> 
        /// <returns></returns>
        public ActionResult UploadPic()
        {
            HttpPostedFileBase file = Request.Files["fileDataFileName"];
            if (file != null)
            {
                //生成路径
                string path = OperatorProvider.Provider.Current().Account + "_" + Util.Time.Now.Year
                        + Util.Time.Now.Month.ToString("D2")
                        + Util.Time.Now.Day.ToString("D2");
                string strPath = HttpContext.Server.MapPath(string.Format("/Resource/Upload/{0}/", path));
                if (!Directory.Exists(strPath))
                {
                    Directory.CreateDirectory(strPath);
                }
                string filePath = Path.Combine(strPath, Path.GetFileName(file.FileName));

          //保存图片 file.SaveAs(filePath);
return Success("上传成功!"); } else { return Success("上传失败!"); } }

 

 

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

前端页面获取数据用getValue即可。

        var postData = {
            //...
            describe: editor1.getValue()
        }
        $.SaveForm({
            url: "../../WebManage/WebNews/SaveForm?keyValue=" + keyValue,
            param: postData,
            loading: "正在保存数据...",
            success: function () {
                $.currentIframe().$("#gridTable").trigger("reloadGrid");
            }
        });

 

 

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

  [ValidateInput(false)]必须加上,否则会提示:从客户端(*****)中检测到有潜在危险的......

        /// <summary>
        /// 保存新闻表单(新增、修改)
        /// </summary>
        /// <param name="keyValue">主键值</param>
        /// <param name="newsEntity">新闻实体</param>
        /// <returns></returns>
        [HttpPost]
        [AjaxOnly]
        [ValidateInput(false)]
        public ActionResult SaveForm(string keyValue, WebNewsEntity newsEntity)
        {
            newsBLL.SaveForm(keyValue, newsEntity);
            return Success("操作成功。");
        }

 

 

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

前端页面展示用setValue 即可正常展示。

  editor1.setValue(data.describe);

 

 

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

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

posted on 2018-01-26 10:53 永不言弃! 阅读(...) 评论(...) 编辑 收藏