注:本文系作者原创,但可随意转载。

最近写自己的网站玩儿,写到博客的部分,打算使用UMeditor,因为之前也用过(但是好像没实现图片上传的功能),感觉用起来还比较简单。

不过还是折腾了一下午。。。遇到了很多问题,最麻烦的地方莫过于文档和实际代码不统一,导致文档的可信度大大降低,只能靠自己一步步跟踪调试。

比如,文档中js的配置文件给了两个节点

{
    "imagePathFormat": "upload/image/{yyyy}{mm}{dd}/{time}{rand:6}",
    "imageUrlPrefix": "/myapp/ueditor/net/",
}

但是实际下载下来的UMeditor代码的js配置文件中给的节点是,

//图片上传配置区

,imageUrl:URL+"net/imageUp.ashx" //图片上传提交地址
,imagePath:URL + "net/" //图片修正地址,引用了fixedImagePath,如有特殊需求,可自行配置
,imageFieldName:"upfile" //图片数据的key,若此处修改,需要在后台对应文件修改对应参数

问题一、

下载后,直接引用Umeditor,目录结构大致如下图,在ASP.NET MVC4项目中,把整个umeditor文件夹放在Scripts下。编辑博客的页面已经写好了,启动程序,进入编辑页面点击上传图片,进行上传,报错。

说明: 在编译向该请求提供服务所需资源的过程中出现错误。请检查下列特定错误详细信息并适当地修改源代码。

编译器错误消息: CS0433: 类型“Lyosaki.Site.Uploader”同时存在于“c:\Users\LiuYu\AppData\Local\Temp\Temporary ASP.NET Files\root\0d2fa058\84067035\App_Web_uploader.cs.c95a9a5.dyxu9rbj.dll”和“c:\Users\LiuYu\AppData\Local\Temp\Temporary ASP.NET Files\root\0d2fa058\84067035\assembly\dl3\3147e142\84a16ccb_7a2ad101\Lyosaki.Site.DLL”中

解决方案:因为在imageUp.ashx文件头部有一句 <%@ Assembly Src="Uploader.cs" %>, 但给出的是相对路径,系统在默认路径下找到了多个程序集导致编译失败。这里直接把这一句去掉,另外 Uploader.cs没有命名空间,这里加上命名空间Lyosaki.Site,然后直接在imageUp.ashx里边using Lyosaki.Site;即可。

问题二、

在不改变现有目录结构和默认图片上传路径的情况下,图片上传地址形如:~/Scripts/umeditor/net/upload/yyyy-MM-dd/Guid.jpg。

所以,我想优化文件组织结构,改变图片存储位置到~/Upload/yyyy-MM-dd/Guid.jpg。顺便把ashx和cs文件拿出来,放在Scripts文件夹下实在变扭。

这里调试了半天,因为图片上传路径的拼接逻辑实在是混乱,在c#两个文件里有配置,js里也有相关配置,然后c#上传完后还要回调js又传了个路径回去。。。

解决方案:在根目录下新建Ashx文件夹,把两个ashx文件拷过去。在根目录新建Helper文件夹,把Uploader.cs拷贝进去。

在imageUp文件ProcessRequest方法里修改pathbase为,

//上传配置
string pathbase = "/Upload/";。

代表要上传文件到 根目录的Upload文件夹下,但是不能写成"~/Upload",因为这里路径后面会回调到js,js无法解析~。

在umeditor.config.js文件中,将图片上传配置修改为:

//图片上传配置区
, imageUrl: "/Ashx/imageUp.ashx" //图片上传提交地址
, imagePath: "" //图片修正地址,引用了fixedImagePath,如有特殊需求,可自行配置
, imageFieldName: "upfile" //图片数据的key,若此处修改,需要在后台对应文件修改对应参数

问题三、

点击图片上传后,弹窗如图,由于页面较长,可以上下滚动,但此时,整个“图片”弹窗是Fixed的,会随页面滚动。。。但"本地上传","网络图片"这两个pannel,以及中间的小电脑图片和下面那一行文字,确是relative的,滚动到下面,他们不会跟着滚动。。。

导致有几次我滚动到最下面然后点图片上传,却看不到中间的内容,还以为是网络问题没加载出来。。。

解决方案:

在umeditor.css里面加入下面几行样式即可。

.edui-tab-pane {
position: fixed !important;
}

.edui-image-dragTip, .edui-image-upload1 {
left: 50% !important;
position: fixed !important;
}

目前暂时还没有遇到其他问题,但打算在其他地方复用一下它的上传弹窗和后台逻辑,先研究研究能否实现。

使用UMeditor富文本编辑器上传图片的更多相关文章

  1. 富文本编辑器上传图片需要配置js,后台代码

    富文本编辑器上传图片需要配置js,后台代码

  2. 百度umeditor富文本编辑器插件扩展

    富文本编辑器在WEB开发中经常用到,个人比较喜欢用百度出的ueditor这款,ueditor这款本身支持插件扩展的,但是ueditor的mini版本 umeditor 就没有那么方便了,不过找了很多资 ...

  3. 使用百度UMeditor富文本编辑器,修改自定义图片上传,修改源码

    富文本编辑器,不多说了,这个大家应该都用到过,至于用到的什么版本,那就分很多种 CKEditor:很早以前叫FCK,那个时候也用过,现在改名了,比较流行的一个插件,国外很多公司在用 UEDITOR:百 ...

  4. JSP嵌入ueditor、umeditor富文本编辑器

    一.下载: 1.什么是富文本编辑器?就是: 或者是这个: 其中第一个功能比较详尽,其主要用来编写文章,名字叫做udeitor. 第二个就相对精简,是第一个的MINI版,其主要用来编辑即时聊天或者发帖, ...

  5. vue问题四:富文本编辑器上传图片

    vue使用富文本编辑器上传图片: 我是用的是wangEditor 富文本编辑器 demo:http://www.wangeditor.com/ 1).安装依赖:npm install wangedit ...

  6. ueditor富文本编辑器——上传图片按钮卡顿,响应慢

    最近负责将公司官网从静态网站改版成动态网站,方便公司推广营销人员修改增加文案,避免官网文案维护过于依赖技术人员.在做后台管理系统时用到了富文本编辑器Ueditor,因为公司有一个阿里云文件资源服务器, ...

  7. Ueditor富文本编辑器--上传图片自定义上传操作

    最近负责将公司官网从静态网站改版成动态网站,方便公司推广营销人员修改增加文案,避免官网文案维护过于依赖技术人员.在做后台管理系统时用到了富文本编辑器Ueditor,因为公司有一个阿里云文件资源服务器, ...

  8. 百度 迷你版 UMeditor富文本编辑器 使用方法

    第一步:下载编辑器 到官网下载 umeditor 最新版源码版本,下载之后打开 _examples/index.html 就可以看到演示例子.[下载页面] 第二步:部署编辑器到页面 解压下载的包,放到 ...

  9. ueditor富文本编辑器跨域上传图片解决办法

    在使用百度富文本编辑器上传图片的过程中,如果是有一台单独的图片服务器就需要将上传的图片放到图片服务器,比如在a.com的编辑器中上传图片,图片要保存到img.com,这就涉及到跨域上传图片,而在ued ...

随机推荐

  1. POJ1985 树的直径(BFS

    Cow Marathon   Description After hearing about the epidemic of obesity in the USA, Farmer John wants ...

  2. WPF中,如何将Vista Aero效果扩展到整个窗口

    原文:WPF中,如何将Vista Aero效果扩展到整个窗口   WPF中,如何将Vista Aero效果扩展到整个窗口                                         ...

  3. [Windows]_[C/C++]_[如何调试子进程]

    场景 1.VC++ 的程序A在启动程序C时, 如果需要调试程序C的话一般有两种, 一种是通过菜单 调试->附加到进程的方式来调试程序, 缺点就是这个进程必须先启动, 但是一启动的话有可能就执行了 ...

  4. Linux-Shell脚本编程-学习-4-Shell编程-操作数字-加减乘除计算

    对于任何一种编程语言都很重要的特性就是操作数字的能力,遗憾的是,对于shell脚本来说,这个过程比较麻烦,在shell脚本中有两种途径来进行数学运算操作. 1.expr 最开始的时候,shell提供了 ...

  5. Spotlight on MySQL

    聚光灯在MySQL 1.Sessios会话Total Users:总用户数前连接到MySQL服务器的用户会话总数Active Users:活跃用户此控件表示连接到当前正在执行SQL语句或其他数据库请求 ...

  6. 问题 E: 完数与盈数

    问题 E: 完数与盈数 时间限制: 1 Sec  内存限制: 32 MB提交: 73  解决: 69[提交][状态][讨论版][命题人:外部导入] 题目描述 一个数如果恰好等于它的各因子(该数本身除外 ...

  7. 基于语音转录的ted演讲推荐

    论文地址:https://arxiv.org/abs/1809.05350v1 二.  实现 我们从Kaggle[6]中获取了TED演讲数据集,其中包括2400个TED演讲的数据,包括标题.演讲者.标 ...

  8. JavaSE复习(七)Stream流和方法引用

    Stream流 全新的Stream概念,用于解决已有集合类库既有的弊端. 传统集合的多步遍历代码 几乎所有的集合(如 Collection 接口或 Map 接口等)都支持直接或间接的遍历操作.而当我们 ...

  9. 给Python初学者的一些编程建议

    Python是一种非常富有表现力的语言.它为我们提供了一个庞大的标准库和许多内置模块,帮助我们快速完成工作.然而,许多人可能会迷失在它提供的功能中,不能充分利用标准库,过度重视单行脚本,以及误解Pyt ...

  10. lintcode-116-跳跃游戏

    116-跳跃游戏 给出一个非负整数数组,你最初定位在数组的第一个位置. 数组中的每个元素代表你在那个位置可以跳跃的最大长度. 判断你是否能到达数组的最后一个位置. 注意事项 这个问题有两个方法,一个是 ...