kindEditor编辑器的使用
来源:互联网 发布:mac投声音电视 编辑:程序博客网 时间:2024/06/11 13:35
最近在跟着教程写一些简单的项目的时候用到了kindEditor编辑器,在后台添加文章时,使用到了,下面就讲一下使用方法吧。
首先是替换,将文本框替换为编辑器,这里的实现比较简单:
KindEditor.ready(function (K) { window.editor = K.create('#Article_Content', { height: '500px', uploadJson: '@Url.Action("Upload", "Attachment")', fileManagerJson: '@Url.Action("FileManagerJson", "Attachment")', allowFileManager: true, formatUploadUrl: false });然后可以选择上传附件什么的,主要方法在Attachment/Upload中,其中_uploadConfg是将配置中的文件读取出来,这里把代码贴上来
public ActionResult Upload() { var _uploadConfig = System.Web.Configuration.WebConfigurationManager.OpenWebConfiguration("~").GetSection("UploadConfig") as CMSDemo.Models.Config.UploadConfig; //文件的最大限制 int _maxSize = _uploadConfig.MaxSize; //保存的路径 string _savePath; //文件路径 string _filePath = "~/" + _uploadConfig.Path + "/"; //文件名 string _fileName; //拓展名 string _fileExt; //文件类型 string _dirName; //允许上传的类型 Hashtable extTable = new Hashtable(); extTable.Add("image", _uploadConfig.ImageExt); extTable.Add("flash", _uploadConfig.FileExt); extTable.Add("media", _uploadConfig.MediaExt); extTable.Add("file", _uploadConfig.FileExt); //获取到要上传的文件 HttpPostedFileBase _postFile = Request.Files["imgFile"]; if (_postFile == null) return Json(new { error = 1, message = "请选择文件" }); _fileName = _postFile.FileName; _fileExt = Path.GetExtension(_fileName).ToLower(); _dirName = Request.QueryString["dir"]; if (string.IsNullOrEmpty(_dirName)) _dirName = "image"; if (!extTable.ContainsKey(_dirName)) return Json(new { error = 1, message = "目录类型不存在" }); if (_postFile.InputStream == null || _postFile.InputStream.Length > _maxSize) return Json(new { error = 1, message = "文件大小超过限制" }); if (string.IsNullOrEmpty(_fileExt) || Array.IndexOf(((string)extTable[_dirName]).Split(','), _fileExt.Substring(1).ToLower()) == -1) return Json(new { error = 1, message = "不允许上传此类型的文件。 \n只允许" + ((String)extTable[_dirName]) + "格式。" }); _filePath += _dirName + "/" + DateTime.Now.ToString("yyyy-MM") + "/"; _savePath = Server.MapPath(_filePath); //检查上传目录 if (!Directory.Exists(_savePath)) Directory.CreateDirectory(_savePath); string _newFileName = DateTime.Now.ToString("yyyyMMdd_hhmmss") + _fileExt; _savePath += _newFileName; _filePath += _newFileName; //保存文件 _postFile.SaveAs(_savePath); //保存数据库记录 AttachmentService.Add(new Attachment() { Extension = _fileExt.Substring(1), FilePath = _filePath, Owner = User.Identity.Name, UploadDate = DateTime.Now, Type = _dirName, }); return Json(new { error = 0, url = Url.Content(_filePath) }); }
</pre><p>接着就是附件管理了,方法在Attachment/FileManageJson中,</p><p><pre name="code" class="javascript"> public ActionResult FileManagerJson(int? id ,string dir) { Models.AttachmentManagerViewModel _attachmentViewModel; IQueryable<CMSDemo.Models.Attachment> _attachments; //id为null,表示是modelid为null,此时查询数据库中没有跟模型对应起来的附件列表(已上传,但上传的文章,还未保存) if (id == null) _attachments = AttachmentService.FindList(null, User.Identity.Name, dir); else //id不为null,返回指定模型的id和id为null附件列表 _attachments = AttachmentService.FindList((int)id, User.Identity.Name, dir, true); //初始化一个列表 var _attachmentList = new List<Models.AttachmentManagerViewModel>(_attachments.Count()); foreach(var _attachment in _attachments) { _attachmentViewModel = new Models.AttachmentManagerViewModel() { datetime = _attachment.UploadDate.ToString("yyyy-MM-dd-HH-mm-ss"), filetype = _attachment.Extension, has_file = false, is_dir = false, is_photo = _attachment.Type.ToLower() == "image" ? true : false, filename = Url.Content(_attachment.FilePath), // Filesize=0 }; FileInfo _fileInfo = new FileInfo(Server.MapPath(_attachment.FilePath)); _attachmentViewModel.filesize = (int)_fileInfo.Length; _attachmentList.Add(_attachmentViewModel); } //_attachmentList.Count return Json(new { moveup_dir_path = "", current_dir_path = "", current_url = "", total_count = _attachmentList.Count, file_list = _attachmentList },JsonRequestBehavior.AllowGet); }
其中AttachmentManagerViewModel的模型,是官方文档的模型,我修改过模型后不能正常使用了,所以不能随意修改
public class AttachmentManagerViewModel { public bool is_dir { set; get; } public bool has_file { set; get; } public int filesize { get; set; } public bool is_photo { get; set; } public string filetype { get; set; } public string filename { get; set; } public string datetime { get; set; } }
最后就是创建对话框,来显示我们刚才上传的附件了,我这里的附件主要是图片
var editor2 = K.editor({ fileManagerJson: '@Url.Action("FileManagerJson", "Attachment")' }); K('#btn_picselect').click(function () { editor2.loadPlugin('filemanager', function () { editor2.plugin.filemanagerDialog({ viewType: 'VIEW', dirName: 'image', clickFn: function (url, title) { var url; $.ajax({ type: "post", url: "@Url.Action("CreateThumbnail", "Attachment")", data: { originalPicture: url }, async: false, success: function (data) { if (data == null) alert("生成缩略图失败!"); else { K('#DefaultPicUrl').val(data); K('#imgpreview').attr("src", data); } editor2.hideDialog(); } }); } }); }); });官方也有相应的上传附件的方法,需要的可以去官方查阅相关文档
0 0
- kindEditor编辑器的使用
- KindEditor编辑器的使用
- kindEditor编辑器的使用
- KindEditor编辑器的使用
- KindEditor编辑器的使用
- html编辑器kindeditor的使用
- 网页编辑器kindeditor的使用
- 前端编辑器-kindeditor的使用
- 多功能编辑器的使用技巧(kindeditor)
- 在线编辑器的使用总结(kindeditor , )
- ckeditor和KindEditor编辑器的简单使用
- asp.net 文本编辑器kindeditor的使用
- 国产网页在线编辑器kindeditor的使用
- kindeditor富文本编辑器的使用
- kindeditor-4.1.10在线编辑器的使用
- kindeditor-4.1.10网页编辑器的使用
- 富文本编辑器 kindeditor的使用
- kindeditor在线编辑器的使用心得
- jQuery给控件赋值....
- 堆排序
- 工作心得总结
- 千万要避免的五种程序注释方式
- POJ 1504 (一个水题引发的血案)
- kindEditor编辑器的使用
- tcpdump重要笔记
- 关于所谓的左值和右值,完全是翻译错误啊!
- 贫贱夫妻百事哀 or 贫穷是动力
- 最小覆盖子串 KMP
- Gerrit安装配置手册
- 02.eclipse搭建maven项目
- 浅谈Java中的输入输出流
- piwik - visit log result