CKEditor不借助CKFinder实现图片上传(.net版 ashx实现)
参考博客:http://blog.csdn.net/mydwr/article/details/8669594
本人版本:4.4.6
打开文件:ckeditor/plugins/image/dialogs/image.js
搜索内容:【c.config.image_previewText】,并删掉其后引号内的内容。
删除后格式:【c.config.image_previewText||""】。
与原文差异:原内容原文中是【b.config.image_previewText】,我这里是【c.config.image_previewText】,可能是版本不同的原因;原文中包括其后内容的包括号是单引号,我的版本是双引号,不影响使用。
修改影响:预览界面中杂乱的字符消失。
搜索内容:“upload”,并找到:【id:"Upload",hidden:!0】。
替换内容:将hidden的值改为0。
与原文差异:原文hidden后的值是true,我这里是非0。
修改影响:编辑器图片界面的上传按钮及选项卡出现。
打开文件:ckeditor/config.js文件
在配置的最后添加一条【config.filebrowserImageUploadUrl = "【ashx上传处理页面路径】";】
如果只是进行以上的设置的话,在图片上传完毕之后,会提示【缺少图像源文件地址】。
为了使其正常运行,则需要在图片上传成功的返回值中添加script将图片地址输入预览当中。
代码如下【注意将uploadImages/替换为图片存储的文件夹,modifiedName替换为上传后存储的文件名】:
context.Response.Write("<script type=\"text/javascript\">");
context.Response.Write("window.parent.CKEDITOR.tools.callFunction(" + callbackNumber + ",'" + "uploadImages/" + modifiedName + "','')");
context.Response.Write("</script>");
一定要将context.Response.ContentType设置为"text/html",而不是默认的"text/plain",返回的值才会是html代码而不是不能运行的纯字符串。
ashx上传处理页面如下【我的处理比较繁琐,各位可自行简化】:
public class UploaderHandler : IHttpHandler
{ public void ProcessRequest(HttpContext context)
{
context.Response.ContentType = "text/html"; //对文件进行校验
if ( > context.Request.Files.Count)
{
ResponseWriteEnd(context, "<span style='color: red; font-size: 20px;'>*请选择上传文件!</span>");
return;
}
else
{
HttpPostedFile _upfile = context.Request.Files[];
string fileName = _upfile.FileName;
string fileType = fileName.Substring(fileName.LastIndexOf(".") + ).ToLower();
int imgLength = _upfile.ContentLength;//获取文件的字节大小 if (!(fileType.Equals("jpg") || fileType.Equals("png") || fileType.Equals("bmp") || fileType.Equals("gif")))
{
ResponseWriteEnd(context, "<span style='color: red; font-size: 20px;'>*只能上传jpg/png/bmp/gif格式的图片!</span>"); //只能上传JPG格式图片
return;
}
else
{
if (imgLength > * * )
{
ResponseWriteEnd(context, "<span style='color: red; font-size: 20px;'>*图片最大不能超过5M!</span>"); //图片不能大于5M
return;
}
else
{
try
{
// 构造简单的防重复文件名
string callbackNumber = context.Request.QueryString["CKEditorFuncNum"];
string modifiedName = DateTime.Now.ToString("yyyy_MM_dd_hh_mm_ss_") + fileName;
string savePathName = context.Server.MapPath("uploadImages/" + modifiedName);
_upfile.SaveAs(savePathName);
if (_upfile.InputStream != null)
{
_upfile.InputStream.Close();
}
// 上传结束后自动跳转到预览界面,并显示预览
context.Response.Write("<script type=\"text/javascript\">");
context.Response.Write("window.parent.CKEDITOR.tools.callFunction(" + callbackNumber + ",'" + "uploadImages/" + modifiedName + "','')");
context.Response.Write("</script>");
ResponseWriteEnd(context, "<span style='font-size: 20px;'>上传成功!</span>"); //上传成功
return;
}
catch
{
ResponseWriteEnd(context, "<span style='color: red; font-size: 20px;'>服务器内部错误!</span>");
return;
}
}
}
}
} public bool IsReusable
{
get
{
return false;
}
} private void ResponseWriteEnd(HttpContext context, string message)
{
context.Response.Write(message);
context.Response.End();
}
}
CKEditor不借助CKFinder实现图片上传(.net版 ashx实现)的更多相关文章
- easyui+webuploader+ckeditor实现插件式多图片上传-添加图片权限(图片上传人是谁,只能看到自己的图片)
需求: 实现过程及思路 1.先页面布局 <html xmlns="http://www.w3.org/1999/xhtml"> <head runat=" ...
- easyui+webuploader+ckeditor实现插件式多图片上传
需求:在ckeditor编辑器上实现多图片上传并要求另外单独选择ckeditor上传的图片作为封面 页面效果说明: 动态效果图: 第一步:页面布局 <html xmlns="http: ...
- 在ASP.NET项目中使用CKEditor +CKFinder实现图片上传功能
前言 之前的项目中一直使用的是FCKeditor,昨天突然有个想法:为什么不试一下新的CKEditor呢?于是花了大半天的时间去学习它的用法,现在把我的学习过程与大家分享一下. 谈起FCKeditor ...
- PHP ckeditor富文本编辑器 结合ckfinder实现图片上传功能
一:前端页面代码 <script src="/www/res/ckeditor/ckeditor.js"></script> <textarea id ...
- .net_ckeditor+ckfinder的图片上传配置
CKEditor和CKFinder的最新版可以到官方网站(http://cksource.com)上下载获得. 把以上两个资源放到网站的根目录: /CKEditor 和 /CKFinder (不区分大 ...
- h5图片上传简易版(FileReader+FormData+ajax)
一.选择图片(input的file类型) <input type="file" id="inputImg"> 1. input的file类型会渲染为 ...
- ci 配置ckeditor + ckfinder 无图片上传按钮
一:配置路径有问题 {$base_url}assets/js/editor/ckfinder/ckfinder.html --> http://www.cnblogs.com/assets/j ...
- jsp中如何整合CKEditor+CKFinder实现文件上传
最近笔者做了一个新闻发布平台,放弃了之前的FCKEditor编辑器,使用了CKEditor+CKFinder,虽然免费的CKFinder是Demo版本,但是功能完整,而且用户都是比较集中精神发新闻的人 ...
- UMEditor(Ueditor mini)修改图片上传路径
UMEditor(Ueditor mini)修改图片上传路径 imageUp.ashx string pathbase = "/UpLoad/images/"; //保存文件夹在网 ...
随机推荐
- Java 中的锁——Lock接口
Java SE5之后,并发包中新增了Lock接口(以及相关实现类)用来实现锁功能.虽然它少了(通过synchronized块或者方法所提供的)隐式获取释放锁的便捷性,但是却拥有了锁获取与释放的操作性. ...
- 使用Func<>和Action简化委托
/// <summary> /// 入口 /// </summary> public void Run() { TestDelegate t = test; t(); Acti ...
- Java:从面试题“i++和++i哪个效率高?"开始学习java字节码
今天看到一道面试题,i++和++i的效率谁高谁低. 面试题的答案是++i要高一点. 我在网上搜了一圈儿,发现很多回答也都是同一个结论. 如果早个几年,我也会认同这个看法,但现在我负责任的说,这个结论是 ...
- jQuery选择器对应的DOM API ——选择元素
英文原文:http://blog.garstasio.com/you-dont-need-jquery/selectors/愚人码头注: 原作者的写这文章的意图是让我们抛弃jQuery,You Don ...
- OSPF相关知识与实例配置【第一部分】
OSPF相关知识与实例配置[基本知识及多区域配置] OSPF(开放式最短路径优先协议)是一个基于链路状态的IGP,相比于RIP有无环路:收敛快:扩展性好等优点,也是现在用的最多的:所以这次实验就针对于 ...
- 串的模式匹配和KMP算法
在对字符串的操作中,我们经常要用到子串的查找功能,我们称子串为模式串,模式串在主串中的查找过程我们成为模式匹配,KMP算法就是一个高效的模式匹配算法.KMP算法是蛮力算法的一种改进,下面我们先来介绍蛮 ...
- Kubernetes使用cephfs作为后端存储
这里使用了k8s自身的持久化卷存储机制:PV和PVC.各组件之间的关系参考下图: PV的Access Mode(访问模式) The access modes are: ReadWriteOnce – ...
- js-面试题之字符串
问题:输入两个字符串,从第一个字符串中删除第二个字符串中的所有字符串不可以使用replace<!--例如:输入"They are students" 和"aeiou ...
- Kickstart无人值守安装系统
1.导言 已经或未来将从事Linux系统运维工作的读者,经常会遇到一些机器式的重复的共走,例如:有时间同时上线几十甚至上百台服务器,而且需要我们在短时间内完成系统安装. q 光盘安装系统===> ...
- 20155205 2016-2017-2 《Java程序设计》第4周学习总结
20155205 2016-2017-2 <Java程序设计>第4周学习总结 教材学习内容总结 第六章 private成员会被继承,只不过子类无法直接存取,必须通过父类提供的方法来存取(若 ...