博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
07.LoT.UI 前后台通用框架分解系列之——轻巧的文本编辑器
阅读量:6071 次
发布时间:2019-06-20

本文共 2995 字,大约阅读时间需要 9 分钟。

LoT.UI汇总:

上次说的是强大的百度编辑器  这次说下简洁版而又不失功能的WangEditor

先看看效果

基本上常用功能都有了,下面说下完整的demo:

前端案例:

    
WangEditor
  

后端代码:(自己写的,如果有什么问题欢迎联系我)

///         /// 图片上传        ///         /// 
public ContentResult Upload(HttpPostedFileBase file) { if (file == null) { return Content("error|文件不能为空"); } if (file.ContentLength > 10485760) { return Content("error|文件10M以内"); } //如果是上传文件,再添加其他格式即可 string filterStr = ".gif,.jpg,.jpeg,.bmp,.png"; string fileExt = Path.GetExtension(file.FileName).ToLower(); if (!filterStr.Contains(fileExt)) { return Content("error|文件后缀不对"); } //防止黑客恶意绕过,从根本上判断下文件后缀 if (!file.InputStream.CheckingExt()) { //todo:一次危险记录 return Content("error|文件后缀不对"); } //todo: md5判断一下文件是否已经上传过,如果已经上传直接返回 return Content(缩略图地址#sqlPath); string path = string.Format("{0}/{1}", "/lotFiles", DateTime.Now.ToString("yyyy-MM-dd")); string fileName = string.Format("{0}{1}", Guid.NewGuid().ToString("N"), fileExt); string sqlPath = string.Format("{0}/{1}", path, fileName); string dirPath = Request.MapPath(path); if (!Directory.Exists(dirPath)) { Directory.CreateDirectory(dirPath); } try { //todo:未来写缩略图的代码 file.SaveAs(Path.Combine(dirPath, fileName)); //todo: 未来写存数据库的Code } catch { return Content("error|文件保存失败"); } return Content(string.Format("{0}#{1}", sqlPath, sqlPath));//第一个sqlPath以后换成缩略图的地址 }
///     /// 判断扩展名是否是指定类型---默认是判断图片格式,符合返回true(没有释放stream,请手动:file.InputStream.Dispose();)    /// eg:图片+压缩+文档:"7173", "255216", "6677", "13780", "8297", "55122", "8075", "208207"    /// eg:img,"7173", "255216", "6677", "13780" //gif  //jpg  //bmp //png    /// eg:file,"8297", "55122", "8075", "208207" //rar //7z //zip + 文档系列    ///     /// 文件流    /// 文件扩展名    /// 
public static bool CheckingExt(this Stream stream, params string[] fileTypes) { if (fileTypes == null || fileTypes.Length == 0) { fileTypes = new string[] { "7173", "255216", "6677", "13780" }; } bool result = false; string fileclass = ""; #region 读取头两个字节 var reader = new BinaryReader(stream); byte[] buff = new byte[2]; try { reader.Read(buff, 0, 2);//读取每个文件的头两个字节 fileclass = buff[0].ToString() + buff[1].ToString(); } catch (System.Exception ex) { stream.Dispose(); reader.Dispose(); return false; } #endregion #region 校验 for (int i = 0; i < fileTypes.Length; i++) { if (fileclass == fileTypes[i]) { result = true; break; } } #endregion return result; }

 

完整demo:

转载于:https://www.cnblogs.com/dunitian/p/5640053.html

你可能感兴趣的文章
项目SOA化
查看>>
小烦躁
查看>>
韩都衣舍连个面试的机会也不给
查看>>
ubuntu下安装phpunit
查看>>
CCNA WAN ACL&NAT
查看>>
Android:menu
查看>>
傻瓜式操作Nagios
查看>>
除去文件中显示的^M符号
查看>>
关于rman备份保留策略“恢复窗口”的一点理解
查看>>
Java 编程的动态性, 第四部分: 用 Javassist 进行类转换
查看>>
JavaScript—数组reduce()方法详解及高级技巧(18)
查看>>
【ThinkPHP3.2.3】学习ThinkPHP笔记:搭建环境(1)
查看>>
MySQL数据库之多条件查询索引实现(项目中经常用到)
查看>>
layer表单元素 三级联动 省市县选择框动态渲染问题解决
查看>>
php Notice: Undefined index: lable in 异常
查看>>
find命令的练习
查看>>
Spring核心——Profile管理环境
查看>>
这是一个鲜为人知,却身怀绝技的神秘工具——幻灯片母版
查看>>
python开发的 dht网络爬虫
查看>>
单链表的反转
查看>>