UEditor之实现配置简单的图片上传示例

提出问题

Ueditor简单介绍和实现图片上传功能????

读书感悟

前提:

  • 假如你已经安装tomcat服务器;
  • 假如你已经把项目运行到Eclipse上;
  • 假如你已经有java基础;
  • 假如你对js有一定基础;
  • 假如你已经下载ueditor1_4_3_3-src源码,记得是开发的哦;

那么开始吧!


下载地址:http://ueditor.baidu.com/website/download.html#ueditor

1.首先你可以到官网Ueditor,查看很详细的文档,包括如何安装到Eclipse,相关jar包和如何使用Ueditor,本文主要介绍如何实现单图片上传和利用自己的接口:

运行tomcat上,在google浏览器运行(Test是我的项目名称):

http://localhost:8081/Test/jsp/config.json

出现一串长长的json的字符串,说明运行成功。

这里写图片描述

2.把WEB-INF/jsp/src下的java源码copy到项目源码中,方便之后的调试代码,如上图

3.运行http://localhost:8081/Test/_examples/simpleDemo.html,可以打开看下这个文件:

    <!DOCTYPE HTML>
<html>
<head>

    <meta http-equiv="Content-Type" content="text/html;charset=utf-8"/>
    <title></title>
    <script type="text/javascript" charset="utf-8" src="../ueditor.config.js"></script>
    <script type="text/javascript" charset="utf-8" src="editor_api.js"></script>
</head>
<body>
    <h1>UEditor简单功能</h1>

    <!--style给定宽度可以影响编辑器的最终宽度-->
    <script type="text/plain" id="myEditor">
        <p>这里我可以写一些输入提示</p>
    </script>
    <script type="text/javascript">
        UE.getEditor('myEditor',{
            //这里可以选择自己需要的工具按钮名称,此处仅选择如下五个
            toolbars:[['FullScreen', 'Source', 'Undo', 'Redo','Bold','test']],
            //focus时自动清空初始化时的内容
            autoClearinitialContent:true,
            //关闭字数统计
            wordCount:false,
            //关闭elementPath
            elementPathEnabled:false,
            //默认的编辑区域高度
            initialFrameHeight:300
            //更多其他参数,请参考ueditor.config.js中的配置项
        })
    </script>

</body>


</html>

上面例子很简单,就是如何初始化一个富文本框,已经如何配置工具条等等

4.因为我们要实现图片上传功能,所有要把图片上传按钮搞上去,方法如下:

1)第一种方法:把simpleupload加到toolbars中:

toolbars:[['FullScreen',simpleupload ,'Source', 'Undo', 'Redo','Bold','test']]

2)第二种方法:直接把toolbars注释掉
这时就会读取默认的配置文件ueditor.config.js,下面介绍,不过会把所有的按钮全部显示出来

重新运行http://localhost:8081/Test/_examples/simpleDemo.html

如图:

这里写图片描述

5.可是你会发现,点击图片上传按钮,一点反应都没有,尼玛有木有!
这里开始介绍ueditor.config.js文件,

首先,你会发现在这个文件可以配置很多,具体看下面即可

重点讲:serverUrl: URL + “php/controller.php”,没错,你没有看错,这个就是请求后端的统一接口路径,记得是统一接口路径,也就是说只有这个路径,没有第二个,会不会觉得很坑呢?

我们把路径改成jsp的:, serverUrl: URL + “jsp/controller.jsp”

我们把注释去掉,重新启动tomcat,刷新页面,点击图片上传按钮,

window.UEDITOR_CONFIG = {

    //为编辑器实例添加一个路径,这个不能被注释
    UEDITOR_HOME_URL: URL

    // 服务器统一请求接口路径
    , serverUrl: URL + "php/controller.php"

    //工具栏上的所有的功能按钮和下拉框,可以在new编辑器的实例时选择自己需要的重新定义
    , toolbars: [[
        'fullscreen', 'source', '|', 'undo', 'redo', '|',
        'bold', 'italic', 'underline', 'fontborder', 'strikethrough', 'superscript', 'subscript', 'removeformat', 'formatmatch', 'autotypeset', 'blockquote', 'pasteplain', '|', 'forecolor', 'backcolor', 'insertorderedlist', 'insertunorderedlist', 'selectall', 'cleardoc', '|',
        'rowspacingtop', 'rowspacingbottom', 'lineheight', '|',
        'customstyle', 'paragraph', 'fontfamily', 'fontsize', '|',
        'directionalityltr', 'directionalityrtl', 'indent', '|',
        'justifyleft', 'justifycenter', 'justifyright', 'justifyjustify', '|', 'touppercase', 'tolowercase', '|',
        'link', 'unlink', 'anchor', '|', 'imagenone', 'imageleft', 'imageright', 'imagecenter', '|',
        'simpleupload', 'insertimage', 'emotion', 'scrawl', 'insertvideo', 'music', 'attachment', 'map', 'gmap', 'insertframe', 'insertcode', 'webapp', 'pagebreak', 'template', 'background', '|',
        'horizontal', 'date', 'time', 'spechars', 'snapscreen', 'wordimage', '|',
        'inserttable', 'deletetable', 'insertparagraphbeforetable', 'insertrow', 'deleterow', 'insertcol', 'deletecol', 'mergecells', 'mergeright', 'mergedown', 'splittocells', 'splittorows', 'splittocols', 'charts', '|',
        'print', 'preview', 'searchreplace', 'drafts', 'help'
    ]]
    //当鼠标放在工具栏上时显示的tooltip提示,留空支持自动多语言配置,否则以配置值为准
    //,labelMap:{
    //    'anchor':'', 'undo':''
    //}

    //语言配置项,默认是zh-cn。有需要的话也可以使用如下这样的方式来自动多语言切换,当然,前提条件是lang文件夹下存在对应的语言文件:
    //lang值也可以通过自动获取 (navigator.language||navigator.browserLanguage ||navigator.userLanguage).toLowerCase()
    //,lang:"zh-cn"
    //,langPath:URL +"lang/"

    //主题配置项,默认是default。有需要的话也可以使用如下这样的方式来自动多主题切换,当然,前提条件是themes文件夹下存在对应的主题文件:
    //现有如下皮肤:default
    //,theme:'default'
    //,themePath:URL +"themes/"

    //,zIndex : 900     //编辑器层级的基数,默认是900

    //针对getAllHtml方法,会在对应的head标签中增加该编码设置。
    //,charset:"utf-8"

    //若实例化编辑器的页面手动修改的domain,此处需要设置为true
    //,customDomain:false

    //常用配置项目
    //,isShow : true    //默认显示编辑器

    //,textarea:'editorValue' // 提交表单时,服务器获取编辑器提交内容的所用的参数,多实例时可以给容器name属性,会将name给定的值最为每个实例的键值,不用每次实例化的时候都设置这个值

    //,initialContent:'欢迎使用ueditor!'    //初始化编辑器的内容,也可以通过textarea/script给值,看官网例子

这里写图片描述
6.你会发现,你选择一张图片,我卡,图片上传不了
打开google浏览器调试,如下图:

这里写图片描述

7.说明还有些配置文件还没配好,我们看刚刚配置的后端请求路径

    // 服务器统一请求接口路径
    , serverUrl: URL + "jsp/controller.jsp"

记住,大家要把这个文件当作后端的java文件,一定要记住,很重要的。

controller.jsp会返回同目录下的config.json文件,大家要把它当作是后端返回的数据即可

这时,我们先看config.json文件:

只看部分配置,下面的配置都很重要,但我们先解决上面出现的问题:

上面的问题应该是图片的路径不对造成的,所以我们修改配置:imageUrlPrefix,把他改成下面的配置,重启,刷新:

"imageUrlPrefix" = http://localhost:8081/Test/


/* 前后端通信相关的配置,注释只允许使用多行方式 */
{
    /* 上传图片配置项 */
    "imageActionName": "uploadimage", /* 执行上传图片的action名称 */
    "imageFieldName": "upfile", /* 提交的图片表单名称 */
    "imageMaxSize": 2048000, /* 上传大小限制,单位B */
    "imageAllowFiles": [".png", ".jpg", ".jpeg", ".gif", ".bmp"], /* 上传图片格式显示 */
    "imageCompressEnable": true, /* 是否压缩图片,默认是true */
    "imageCompressBorder": 1600, /* 图片压缩最长边限制 */
    "imageInsertAlign": "none", /* 插入的图片浮动方式 */
    "imageUrlPrefix": "http://localhost:8081/Test/", /* 图片访问路径前缀 */
    "imagePathFormat": "/ueditor/jsp/upload/image/{yyyy}{mm}{dd}/{time}{rand:6}", /* 上传保存路径,可以自定义保存路径和文件名格式 */
                                /* {filename} 会替换成原文件名,配置这项需要注意中文乱码问题 */
                                /* {rand:6} 会替换成随机数,后面的数字是随机数的位数 */
                                /* {time} 会替换成时间戳 */
                                /* {yyyy} 会替换成四位年份 */
                                /* {yy} 会替换成两位年份 */
                                /* {mm} 会替换成两位月份 */
                                /* {dd} 会替换成两位日期 */
                                /* {hh} 会替换成两位小时 */
                                /* {ii} 会替换成两位分钟 */
                                /* {ss} 会替换成两位秒 */
                                /* 非法字符 \ : * ? " < > | */
                                /* 具请体看线上文档: fex.baidu.com/ueditor/#use-format_upload_filename */

图片如下:

这里写图片描述

8.结束,可是这样真的够吗,够吗,够吗,爽吗,爽吗,爽吗 重要的事说三遍????

请看下一章《UEditor之基于Java图片上传前后端源码研究》

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值