1、下载ueditor1.4.3.3 UTF-8的版本

2、新建一个项目,在项目中添加UEditor,把下载好的插件都放在ueditor这个文件夹中,在进行一些基本的配置

3、在根目录下新建一个为index.aspx的网页,在进行如下的配置,引用三个js文件,在form表单里面用csript来构造一个页面,在让var ue = UE.getEditor("container");来初始化这个页面。运行后界面都已经出现啦

4、运行index.aspx这个页面时会报错,json没引用之类的,一开始我找了很多方法,后来才看到是没有添加Newtonsoft.Json.dll的引用,在下载的UEDITOR/net文件的bin文件里找到这个dll动态库,然后在项目中添加引用。这样无论是点击单图上传还是多图上传都可以啦。那么还有一个问题,这个图片传到哪里了呢,就需要更改一下net目录下的config.json文件

"imageUrlPrefix": " / ", /* 图片访问路径前缀 */
"imagePathFormat": "uploadFile/image/{yyyy}{mm}{dd}/{time}{rand:6}", /* 上传保存路径,可以自定义保存路径和文件名格式 */

这样的话,上传的图片会保存在根目录的uploadFile/image/上传图片的时间 文件夹中,如果没有建文件夹也没关系,会自动生成的。如果觉得图片保存目录太深了,也可以自定义上面的图片文件夹。

图片访问路径前缀一点要为空,不然上传之后就会出错,图片出不来。imagepathFormat里的文件夹是自己新建的,我当时只新建了uploadFile里面的image文件夹自己出现了,还有一个文件就是以日期命名的,如果你不需要在包含文件,就可以把后面的{yyyy}这些日期的都删了。

5.现在图片已经可以上传了。但还有一个功能没完成,就是删除功能了,我这里要做的是单个图片的删除。

6.图片的删除,首先在线管理栏目的图片右上角会有删除一词出现,现在就来实现吧。我对样式美感那些把握的不是那么好,所以直接在网上看了好看的例子,用的他的样式。

找到ueditor\dialogs\image\image.js这个文件,增加了删除按钮,是一把x,这时候已经有了删除的状态功能,真正实现删除的功能是仿照了uploadimage.cs文本编辑器里面自带的一个上传类,把它改成删除类。

  1. /* 在这两句之后添加 */
  2. item.appendChild(img);
  3. item.appendChild(icon);
  4.  
  5. //增加删除按钮
  6. item.appendChild($("<span class='delbtn' url='" + list[i].url + "'>✖</span>").click(function (){
  7. var del = $(this);
  8. try {
  9. window.event.cancelBubble = true; //停止冒泡
  10. window.event.returnValue = false; //阻止事件的默认行为
  11. window.event.preventDefault(); //取消事件的默认行为
  12. window.event.stopPropagation(); //阻止事件的传播
  13. } finally {
  14. if (!confirm("确定要删除吗?")) return;
  15. $.post(editor.getOpt("serverUrl") + "?action=deleteimage", { "path": del.attr("url") },
  16. function (result) {
  17. if (result.indexOf("文件删除成功")>-) {
  18. del.parent().remove();
  19. }
  20.  
  21. else alert(result);
  22. });
  23. }
  24. })[]);
  25.  
  26. /* 在这一句之前添加 */
  27. this.list.insertBefore(item, this.clearFloat);

在image.css的文件中加入样式,删除的图标更好看一些,我是放在最后。注:样式是参考另外一篇文章。

  1. /* 在线管理删除按钮样式 */
  2. #online li .delbtn {
  3. position: absolute;
  4. top: ;
  5. right: ;
  6. border: ;
  7. z-index: ;
  8. color: #ffffff;
  9. display: inline;
  10. font-size: 12px;
  11. line-height: .5px;
  12. padding:3px 5px;
  13. text-align: center;
  14. background-color: #d9534f;
  15. }

删除类,是自己新建了一个类,放在net/app_code中 DeleteImageHandler.cs

  1. using System;
  2. using System.Collections.Generic;
  3. using System.IO;
  4. using System.Linq;
  5. using System.Text.RegularExpressions;
  6. using System.Web;
  7.  
  8. /// <summary>
  9. /// UploadHandler 的摘要说明
  10. /// </summary>
  11. public class DeleteImageHandler : Handler
  12. {
  13.  
  14. public DeleteConfig deleteConfig { get; private set; }
  15. public DeleteResult Result { get; private set; }
  16.  
  17. public DeleteImageHandler(HttpContext context, DeleteConfig config)
  18. : base(context)
  19. {
  20. this.deleteConfig = config;
  21. this.Result = new DeleteResult() { State = DeleteState.Success };
  22. }
  23.  
  24. public override void Process()
  25. {
  26.  
  27. try
  28. {
  29. string realpath = Server.MapPath("/ueditor")+"/net/"+deleteConfig.PathFormat;
  30.  
  31. bool bl = System.IO.File.Exists(realpath);
  32. if (bl)
  33. {
  34. System.IO.File.Delete(realpath);
  35. Result.State = DeleteState.Success;
  36.  
  37. }
  38. else
  39. {
  40. Result.State = DeleteState.Fail;
  41. }
  42.  
  43. }
  44. catch (Exception e)
  45. {
  46. Result.State = DeleteState.Fail;
  47. // Result.ErrorMessage = e.Message;
  48. }
  49. finally
  50. {
  51. WriteResult();
  52. }
  53. }
  54.  
  55. private void WriteResult()
  56. {
  57. this.WriteJson(new
  58. {
  59. state = GetStateMessage(Result.State),
  60. // url = Result.Url,
  61. //title = Result.OriginFileName,
  62. // original = Result.OriginFileName,
  63. // error = Result.ErrorMessage
  64. });
  65. }
  66.  
  67. private string GetStateMessage(DeleteState state)
  68. {
  69. switch (state)
  70. {
  71. case DeleteState.Success:
  72. return "文件删除成功";
  73.  
  74. case DeleteState.Fail:
  75. return "文件删除失败,请检查图片路径是否存在";
  76. }
  77. return "未知错误";
  78. }
  79.  
  80. }
  81.  
  82. public class DeleteConfig
  83. {
  84. /// <summary>
  85. /// 文件命名规则
  86. /// </summary>
  87. public string PathFormat { get; set; }
  88.  
  89. }
  90.  
  91. public class DeleteResult
  92. {
  93. public DeleteState State { get; set; }
  94. // public string Url { get; set; }
  95. //public string OriginFileName { get; set; }
  96.  
  97. //public string ErrorMessage { get; set; }
  98. }
  99.  
  100. public enum DeleteState
  101. {
  102. Success = ,
  103. Fail = -,
  104.  
  105. }

到了这里已经结束啦,以供参考。如果只是我,肯定不会想到用这样的方法的,还得感谢我的一位朋友,我才能做好这个模块,毕竟我也只是个刚进公司的新人,会的也没那么多,如果没有大神的指点,也不清楚到底会不会走技术这一条路。

UEditor1.4.3.3实现图片上传、删除功能的更多相关文章

  1. 我需要在Web上完成一个图片上传的功能

    我需要在Web上完成一个图片上传的功能. 这个页面需要能从手机中选择图片上传. 首先,这个页面是从微信上面触发的,所以修改了微信的的入口地址,增加了身份识别号作为传参. 跳转到页面的时候,页面先检查身 ...

  2. 包含修改字体,图片上传等功能的文本输入框-Bootstrap

    通过jQuery Bootstrap小插件,框任何一个div转换变成一个富文本编辑框,主要特色: 在Mac和window平台下自动针对常用操作绑定热键 可以拖拽插入图片,支持图片上传(也可以获取移动设 ...

  3. rails使用bootstrap3-wysiwyg可视化编辑器并实现自定义图片上传插入功能

    之前在rails开发中使用了ckeditor作为可视化编辑器,不过感觉ckeditor过于庞大,有很多不需要的功能,而且图片上传功能不好控制不同用户可以互相删除图片,感觉很不好.于是考虑更改可视化编辑 ...

  4. ASP利用xhEditor编辑器实现图片上传的功能。

    本人这几天在做一个软件,无意中用到xhEditor在线编辑器,这个编辑器虽然看着比较简单,但功能非常强大,大家可以去官网上查看,废话不说了. 这篇文件主要是实现在ASP环境中利用xhEditor编辑器 ...

  5. 我需要在Web上完成一个图片上传的功能(+2)

    增加一个页面,用于判断传参是否正确. @{     //判断是否具备会员参数     if (UrlData.Count > 0)     {         Session["Arg ...

  6. 我需要在Web上完成一个图片上传的功能后续(+1)

    微信入口施工完成.关键字识别中增加了本次活动的"关键字",在系统中增加了链接.不过,由于地址包含私密关键参数,这里隐藏,敬请原谅. 下一步,微信链接的地址页面是要对微信用户的信息进 ...

  7. jquery Ajax 实现图片上传的功能。

    $('#image').on('change', function () {         var url = "";         var form = new FormDa ...

  8. Ueditor1.4.3.3+springMvc+maven 实现图片上传

    前记:由于项目中需要有一个新增数据并且要能支持表格图片上传的功能.使用了ueditor控件.为实现这个功能,从一开始什么都看不懂,到一直连着弄了5天,总算是有了眉目.在此记录一下以便能帮到可以和我一样 ...

  9. 关于editor网页编辑器ueditor.config.js 配置图片上传

    最近公司项目在做一个门户网站,其中新闻和简介等部分使用到了ueditor编辑器,但是上级明确指示需要图片上传这个功能,这时却发现图片上传功能不能正常使用,上传时一直报错,网上收了好几个处理办法,都说的 ...

随机推荐

  1. LVS原理讲解

    一.lvs介绍 LVS的英文全名为"Linux Virtual Server",即Linux虚拟服务器,是一个虚拟的四层交换器集群系统,根据目标地址和目标端口实现用户请求转发,本身 ...

  2. yii2之数据验证

    一.场景 什么情况下需要使用场景呢?当一个模型需要在不同情境中使用时,若不同情境下需要的数据表字段和数据验证规则有所 不同,则需要定义多个场景来区分不同使用情境.例如,用户注册的时候需要填写email ...

  3. PHP的取整函数

    PHP的取整函数有四个,分别是ceil.floor.round和intval,下面对它们进行一一介绍: 1. ceil(x):向上舍入为最接近的整数. 返回不小于 x 的下一个整数,x 如果有小数部分 ...

  4. 简易RPC框架-上下文

    *:first-child { margin-top: 0 !important; } body>*:last-child { margin-bottom: 0 !important; } /* ...

  5. 主键乱序插入对Innodb性能的影响

    主键乱序插入对Innodb性能的影响 在平时的mysql文档学习中我们经常会看到这么一句话: MySQL tries to leave space so that future inserts do ...

  6. Windows Nodejs 安装教程

    Windows Nodejs 安装教程 1: 访问官方地址 https://nodejs.org/en/download/ 2: 解压压缩包文件到指定目录 我直接把压缩包解压到C盘根目录下,并将文件夹 ...

  7. 0_Simple__simpleAssert + 0_Simple__simpleAssert_nvrtc

    在核函数中使用强制终止函数 assert().并且在静态代码和运行时编译两种条件下使用. ▶ 源代码:静态使用 #include <windows.h> #include <stdi ...

  8. cookie 子域名可以读父域名中的cookie

    cookie 子域名可以读父域名中的cookie 如在 .ping.com域下注入cookie,则该子域下的网页如p1.ping.com.p2.ping.com 都能读取到cookie信息 path的 ...

  9. VUE插件-图片濑加载

    1.  cnpm install vue-lazyload 2.main.js import  vue-lazyload from  'vue-lazyload' Vue.use(vue-lazylo ...

  10. Problem J: 求个最大值

    Problem J: 求个最大值 Time Limit: 1 Sec  Memory Limit: 128 MBSubmit: 871  Solved: 663[Submit][Status][Web ...