百度编辑器 ueditor1.1.8.1 For Asp.net 配置 上传功能详解

220 篇文章 18 订阅
7 篇文章 0 订阅

http://blog.sina.com.cn/s/blog_55b0c6470100y8kp.html

第一步:从官网下载相关文件 百度搜索“UEditor”

————————————————————————————————————————————

第二步:将下载的文件解压之后放到自己的项目中。编辑器出问题一般都是和路径有关的,如图:

百度编辑器 <wbr>ueditor1.1.8.1 <wbr>For <wbr>Asp.net <wbr>配置 <wbr>上传功能详解
————————————————————————————————————————————
第三步:配置editor_config.js

百度编辑器 <wbr>ueditor1.1.8.1 <wbr>For <wbr>Asp.net <wbr>配置 <wbr>上传功能详解

URL和imagePath皆使用根目录开始的方式,这样可以避免不同的调用页路径混乱的现象。

URL:编辑器路径,因为这里直接把编辑器放在项目根目录了。

imagePath:用户上传图片时,图片保存的路径,具体在JS文件中的注视已经很清楚了。

————————————————————————————————————————————

第四步:让编辑器在浏览器上显示出来。如图:
百度编辑器 <wbr>ueditor1.1.8.1 <wbr>For <wbr>Asp.net <wbr>配置 <wbr>上传功能详解

这里使用了隐藏控件在后台给编辑器赋值的方式。

样式表和JS的引用如下图:

百度编辑器 <wbr>ueditor1.1.8.1 <wbr>For <wbr>Asp.net <wbr>配置 <wbr>上传功能详解

接下来就让我们看下效果图吧!!!
百度编辑器 <wbr>ueditor1.1.8.1 <wbr>For <wbr>Asp.net <wbr>配置 <wbr>上传功能详解



————————————————————————————————————————————
第五步:上传功能

首先,确保imagePath上传目录的正确后添加Asp.net的上传配置文件,如下图:

百度编辑器 <wbr>ueditor1.1.8.1 <wbr>For <wbr>Asp.net <wbr>配置 <wbr>上传功能详解

其次,编辑up.ashx.cs文件:

【——up.ashx.cs——】

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.IO;

namespace PLA93303MainWebsite.UEditor.server.upload.net
{
    /// <summary>
    /// UEditor For Asp.net 上传功能
    /// </summary>
    public class up : IHttpHandler
    {

        public void ProcessRequest(HttpContext context)
        {
            context.Response.ContentType = "text/plain";
            //context.Response.Write("Hello World");

            string uploadPath = "UserFiles/UEditorUploads";   //保存路径
            string fileType = ".jpg,.jpeg,.gif,.png,.bmp";   //文件允许格式
            int fileSize = 2048;    //文件大小限制,单位KB
            string state = "";
            string sFileName = "";
            string retPath = "";

            HttpPostedFile oFile = context.Request.Files[0];
            string pictitle = context.Request.Form["pictitle"];  //获得图片描述
            string fileExtension = System.IO.Path.GetExtension(oFile.FileName).ToLower();

            if (fileType.ToLower().IndexOf(fileExtension) > -1 && IsAllowedExtension(oFile))//检测是否为允许的上传文件类型
            {
                if (fileSize * 1024 >= oFile.ContentLength)
                {
                    try
                    {
                        string DirectoryPath;
                        // 取消下面注释按文件夹归档储存
                        //DirectoryPath = uploadPath + DateTime.Now.ToString("yyyy-MM");
                        DirectoryPath = uploadPath;
                        sFileName = DateTime.Now.ToString("yyyyMMddHHmmssffff");  //文件名称

                        //生成随机数,避免时间完全相同上传
                        Random rnd = new Random();
                        int numSJ = rnd.Next(1000, 9999);
                        sFileName = sFileName + Convert.ToString(numSJ);

                        string FullPath = "~/" + DirectoryPath + "/" + sFileName + fileExtension;//最终文件路径
                        if (!Directory.Exists(context.Server.MapPath("~/" + DirectoryPath)))
                            Directory.CreateDirectory(context.Server.MapPath("~/" + DirectoryPath));
                        oFile.SaveAs(context.Server.MapPath(FullPath));
                        //Response.Write("parent.reloadImg(‘" + Page.ResolveUrl(FullPath) + "‘);" + "location.href=‘upload.aspx?url=" + Page.ResolveUrl(FullPath) + "‘;");

                        //string retPath = "/" + DirectoryPath + "/" + sFileName + fileExtension;
                        retPath = sFileName + fileExtension;

                        state = "SUCCESS";
                    }
                    catch (Exception ex)
                    {
                        //Response.Write("上传文件失败。" + ex.Message);
                        //MessageBox.ShowAndRedirect(this, "上传文件失败。" + ex.Message, "upload.aspx");

                        state = "上传文件失败," + ex.Message;
                    }
                }
                else
                {
                    state = "上传文件大小超过限制";
                }
            }
            else
            {
                state = "上传文件扩展名是不允许的扩展名";
            }

            //返回上传信息
            context.Response.Write("{'url':'" + retPath + "','title':'" + pictitle + "','state':'" + state + "'}");
        }

        public bool IsReusable
        {
            get
            {
                return false;
            }
        }

        /// <summary>
        /// C#检测真实文件类型函数
        /// </summary>
        /// <param name="hifile"></param>
        /// <returns></returns>
        private bool IsAllowedExtension(HttpPostedFile hifile)
        {
            bool ret = false;

            System.IO.Stream fs = hifile.InputStream;
            System.IO.BinaryReader r = new System.IO.BinaryReader(fs);
            string fileclass = "";
            byte buffer;
            try
            {
                buffer = r.ReadByte();
                fileclass = buffer.ToString();
                buffer = r.ReadByte();
                fileclass += buffer.ToString();
            }
            catch
            {
                return false;
            }
            //r.Close();
            //fs.Close();
           

            //String[] fileType = { "255216", "7173", "6677", "13780", "8297", "5549", "870", "87111", "8075" };

            //纯图片
            String[] fileType = {
            "7173",    //gif
            "255216",  //jpg
            "13780",   //png
            "6677"     //bmp
        };

            for (int i = 0; i < fileType.Length; i++)
            {
                if (fileclass == fileType[i])
                {
                    ret = true;
                    break;
                }
            }
            return ret;
        }
    }
}

 

文件上传功能不仅仅是检测了后缀名,还用C#检测真实文件类型,更确保文件的安全性。

最后,需要修改一下dialogs\image里的image.html文件,修改位置如下图:

【路径】

百度编辑器 <wbr>ueditor1.1.8.1 <wbr>For <wbr>Asp.net <wbr>配置 <wbr>上传功能详解

【image.html】

百度编辑器 <wbr>ueditor1.1.8.1 <wbr>For <wbr>Asp.net <wbr>配置 <wbr>上传功能详解
把上传处理页面修改为刚才配置的功能页面就可以了。
————————————————————————————————————————————
第六步:在根目录下新建一个UserFiles/UEditorUploads路径的文件夹保存上传的图片。到此为止百度编辑器配置完毕。

百度编辑器 <wbr>ueditor1.1.8.1 <wbr>For <wbr>Asp.net <wbr>配置 <wbr>上传功能详解

百度编辑器 <wbr>ueditor1.1.8.1 <wbr>For <wbr>Asp.net <wbr>配置 <wbr>上传功能详解

同时上传3张图片,前两张是不同格式的,后一张是WORD文件修改后缀名为.JPG的文件,程序会成功阻止非图片文件上传,却不影响真实图片上传。

 

这里需要提到,有些朋友配置Asp.net上传功能的时候使用了WEB应用程序页面,也就是.ASPX,那样也是可以的,但需要注意.ASPX页面不能有前台显示的任何内容,必须为空。如果不为空Response.Write("{'url':'" + retPath + "','title':'" + sFileName + "','state':'" + state + "'}");就输出给用户了,编辑器是无法取到state中的值来判断文件是否上传成功的。所以看到了网上不少人出现了上传图片成功,编辑器不显示图片的效果。

————————————————————————————————————————————

 

插入图片生成alt标签

1、首先,打开以下路径的editor_all.js文件

百度编辑器 <wbr>ueditor1.1.8.1 <wbr>For <wbr>Asp.net <wbr>配置 <wbr>上传功能详解

2、其次,找到插入图片,操作图片的对齐方式方法
百度编辑器 <wbr>ueditor1.1.8.1 <wbr>For <wbr>Asp.net <wbr>配置 <wbr>上传功能详解

细心的朋友已经发现我把行号也截图了,具体的修改代码如下:

4434行:

(ci.title?' title="'+ci.title+'" alt="'+ci.title+'"':'') + ' border="'+ (ci.border||0) + '" hspace = "'+(ci.hspace||0)+'" vspace = "'+(ci.vspace||0)+'" />';

4447行:

(ci.title?' title="'+ci.title+'" alt="'+ci.title+'"':'') + ' /></p>';

3、最后,把修改好的editor_all.js文件文件转成editor_all_min.js文件进行调用就可以了。这里也可以省略此步骤,但需要注意调用文件的改变。相差一倍的大小呢,还是用editor_all_min.js文件对系统更优化。

 

————————————————————————————————————————————

 

这里想吐槽一下,刚开始为了省事直接问了ueditor讨论群3里的编辑器二次开发,他居然问我懂不懂title和alt的区别,告诉我:

“title是图片的标题 alt也是图片的标题,只是在极少数的浏览器里不认title,而使用了alt,你完全可以当做这两个没有区别。”

希望大家不要误导,因为在实际项目中不但效果完全不同,用户的需求也会变幻莫测。

首先我们看看效果,如下图:

百度编辑器 <wbr>ueditor1.1.8.1 <wbr>For <wbr>Asp.net <wbr>配置 <wbr>上传功能详解

在图片不能正常显示或用户屏蔽图片加载时,alt标签是明文显示的,起到提示用户当前位置的站位信息。

个别用户反而觉得title标签在鼠标经过时遮盖图片,影响图片效果,降低UEO。

两者的区别是显而易见的,另外喜欢SEO的朋友还比较青睐使用各种标签堆砌关键词。这里不讨论利弊,但用户的需求就是我们吃饭的本钱,做过实际项目的朋友都有体会。

 

上述方法没有做到将title标签与alt标签分离开,两个标签都调用了图片描述中的值。还属欠缺,希望朋友们提出宝贵意见,由于时间关系这里就不再继续研究了。

希望大家能轻松搞定百度编辑器,同时也期望百度能够完善编辑器的使用功能。百度编辑器 <wbr>ueditor1.1.8.1 <wbr>For <wbr>Asp.net <wbr>配置 <wbr>上传功能详解

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
百度编辑器UEditor .ASP版 v1.3.5,Ueditor是由百度web前端研发部开发所见即所得的编辑器,具有轻量,可定制,注重用户体验等特点。Ueditor基于BSD开源协议,除了具有代码精简、加载迅速的轻量级特质外,还采用了分层理念,使开发者可以根据实际应用和需求自由定制。 Ueditor编辑器划分为了三层架构。其中,核心层为开发者提供了诸如range、selection、domUtils类的底层API接口,中间的命令插件层不仅提供了大量的基础command,还允许开发者基于核心层进行command命令的开发,而面向用户端的界面层则可以提供自由定制的用户交互界面。Ueditor开源编辑器这种拥有可配性的模式,令开发者能够根据自身需要接入任何一层进行开发。 百度编辑器 v1.3.5 更新日志: 新增功能 asp后台的支持 添加本地自动保存功能 增加数据可视化展示功能 编辑器实例上添加isFocus,blur方法 新增在chrome下针对图片的拖拽宽高功能 新增在高端浏览器下,qq截图粘贴上传,拖拽图片到编辑上传 添加表格插入列标题功能 添加设置表格可排序功能,支持表格在预览页排序 添加生成目录功能 优化修复 ie8以上版本使用w3cRange 使用grunt作为打包工具 修复了过滤规则对于script/style的内容的转码 自动寻址功能重构 修复下拉菜单高度问题 针对ie默认带有的autolink功能,添加开启禁用选项,创建时传入autolink:false就可禁用ie的autolink功能 支持插入动态地图 **API文档更新** 图片上传路径可配置,增加前后端路径验证 对uparse进行了拆分重构 随下载包提供各种功能说明文档 背景颜色功能重构,可以在预览页显示背景 重写了查找替换插件,解决ff下window.find方法失效的问题
Ueditor是由百度web前端研发部开发所见即所得的编辑器,具有轻量,可定制,注重用户体验等特点。Ueditor基于BSD开源协议,除了具有代码精简、加载迅速的轻量级特质外,还采用了分层理念,使开发者可以根据实际应用和需求自由定制。 Ueditor编辑器划分为了三层架构。其中,核心层为开发者提供了诸如range、selection、domUtils类的底层API接口,中间的命令插件层不仅提供了大量的基础command,还允许开发者基于核心层进行command命令的开发,而面向用户端的界面层则可以提供自由定制的用户交互界面。Ueditor开源编辑器这种拥有可配性的模式,令开发者能够根据自身需要接入任何一层进行开发。 百度编辑器 v1.4.3 更新日志: 修复hasContents接口在非ie下只有空格时判断还为真的问题 修复在粘贴word内容时,会误命中cm,pt这样的文本内容变成px的问题 优化删除编辑器再创建编辑器时,编辑器的容器id发生变化的问题 修复提交jsonp请求时,callback参数的xss漏洞 新增jsp后台多种服务器配置下的路径定位 修复ZeroClipboard的flash地址参数名称错误 修复getActionUrl的bug 整理配置参数,把遗漏在代码中的配置项整理到ueditor.config.js里 修复图片拉伸工具和编辑拉伸长高器的样式冲突 修复文字的unicode编码会被错误再次解析问题 添加消息提示功能,冒泡提示信息 优化上传功能提示,当后端配置项没正常加载,禁用上传功能 修复单图上传按钮和jqueryValidate不兼容的问题 简化了与jqueryValidate的结合操作,具体看_examples/jqueryValidateDemo.html 修复在删除编辑器后,再次创建时丢失原有id的问题 修复查找替换在一些块节点中会导致替换错误
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值