这里接着上篇,上篇是关于wangEditor的简单实用。这篇主要是上传图片。

一、wangEditor上传图片的一些配置

博主这里使用的是laravel5.1框架,大家根据自己的框架调整就好。

1、上传图片的参数

 var E = window.wangEditor;var editor1 = new E('#info1');  // 两个参数也可以传入 elem 对象,class 选择器//这里注意,下面的/news/upload是我的路由部分,主要是上传图片的后端代码editor1.customConfig.uploadImgServer = '/news/upload' ; // 上传图片到服务器//定义上传的filename,即上传图片的名称editor1.customConfig.uploadFileName = 'images';editor1.customConfig.showLinkImg = false;//开启wangEditor的错误提示,有利于我们更快的找到出错的地方editor1.customConfig.debug=true;editor1.create();

具体参考官方文档:https://www.kancloud.cn/wangfupeng/wangeditor2/113992

2、首先需要确认,点击上传图片之后,能够成功的进入你后端的方法。

二、后台部分

1、如果成功进入后台代码之后,先打印看看传过来的都是什么数据

var_dump($_FILES);exit;

浏览器显示:

array(1) {["images"]=>array(5) {["name"]=>string(5) "1.png"["type"]=>string(9) "image/png"["tmp_name"]=>string(22) "C:\Windows\phpB48F.tmp"["error"]=>int(0)["size"]=>int(13941)}
}

通过这段代码,我们可以知道,传过来的$_FILES是个数组。数组的第一项’images’就是我们上面设定的上传图片的名称。tmp_name是图片的临时存储路径。

2、laravel把图片上传到阿里OSS服务器上,并且返回图片路径

  public function upload(Request $request){//获取临时存储路径$file = $_FILES["images"]["tmp_name"];//这里做个判断if (isset($_REQUEST["name"])) {$fileName = $_REQUEST["name"];} elseif (!empty($_FILES)) {$fileName = $_FILES["images"]["name"];}//给filename的名称加点料,更复杂一些$fileName = iconv('UTF-8', 'GB2312', $fileName);$content = date('Y-m-d-H-i-s') . '-' . uniqid() . '.' . $fileName;//开启缓冲区。我这里开启缓冲区是因为阿里OSS图片上传,会强制性的返回一个'creatBucket:ok',这个东西对上传图片有一定的影响的,具体看下面解释。所以这边利用缓冲区给屏蔽掉ob_start();//这里是阿里OSS对象存储$bucket = Config::OSS_TEST_BUCKET;$accessKeyId = Config::OSS_ACCESS_ID;$accessKeySecret = Config::OSS_ACCESS_KEY;$endpoint = Config::OSS_ENDPOINT;$ossClient = Common::getOssClient();$object = "news/" . $content;$filePath = $file;//请记住,这个filepath是指向图片的路径,也是临时存储的路径$result = $ossClient->UploadFile($bucket, $object, $filePath);if (!$result) {exit("上传图片失败");}ob_clean();ob_end_flush();//这里拼接返回的格式$ret = [];$data[] =  $result['info']['url'];$ret['errno'] = 0;$ret['data'] = $data;//请参考这里https://zhidao.baidu.com/question/535380282.html//关于返回值的格式:https://www.zhihu.com/question/65352371return json_encode($ret,JSON_UNESCAPED_SLASHES);}

解释:
(1)首先是获取图片的临时存储路径,这也是上传图片必须的,不然我们怎么把图片上传到服务器呢。

(2)开启缓冲区是为了保证这段代码最后的返回值只有wangEditor想要的返回值,这样上传图片才能成功。一旦有任何其他的返回值,上传图片就会不成功。这里划重点

关于缓冲区的用法:http://blog.csdn.net/LJFPHP/article/details/78839654

(3)关于阿里的OSS对象存储,大家有兴趣的话,可以参考我的另一篇博客:
http://blog.csdn.net/ljfphp/article/details/76407850
上传成功之后,我们可以拿到网络图片的路径:

(4)需要特别注意,wangEditor编辑器,对于返回值是很偏执的。必须按照它的格式来。这个部分浪费我很多时间,格式必须是

//拼接出的JSON要类似于:
//这个errno:0是必须的,这样编辑器才会认为你上传成功
//图片路径部分是为了能在编辑器上显示
{"errno":0,"data":["/可读取你图片的路径.jpg"]}

(5)因为我们的图片路径少不了会有斜杠。这里返回的时候需要注意。傲娇的wangEditor是不会允许有任何反斜杠的存在的。我们在json格式化的时候,一定要注意。

防止json格式化时候转义:http://blog.csdn.net/LJFPHP/article/details/78839763

三、上传成功之后,我们的图片就会显示出来了

1、编辑器显示图片
如图:

2、数据库存储html标签代码

OK,这里就大功告成了。

四、总结下主要注意的问题

1、上传的图片名称最好不要是中文的。这个会有影响的,反正我这边上传中文名称的图片就会报错。

2、后台返回的时候,只能按照格式返回。其他的返回值一定要消除。楼主这里是借用缓冲区来消除其他返回值的。

3、json格式化的时候,注意不要把斜杠给转义了。

可能我这边写的也不够好,大家有意见可以提出来,一起学习。

end

wangEditor编辑器在laravel中上传图片(二)相关推荐

  1. php页面运用文本编辑器的实例,TP3.2.3框架使用CKeditor编辑器在页面中上传图片的方法分析...

    本文实例讲述了TP3.2.3框架使用CKeditor编辑器在页面中上传图片的方法.分享给大家供大家参考,具体如下: 最近项目里要添加编辑器,以为CKeditor比较出名,所以研究了一下... 1.下载 ...

  2. laravel中上传图片并预览

    (1)需要工具uploadify (2)需要uploadify文档一份(uploadify文档链接) (3)demo模仿 <tr><th>缩略图:</th>< ...

  3. wangeditor ajax,laravel 中 wangEditor 富文本编辑器使用指南

    在本课程中,老师使用的富文本编辑器是 2.0 的版本,且输入区域使用的 textarea,但是在新的 3.0 版本中(新版本富文本编辑器只需要引用一个js文件即可),开发者不建议使用 textarea ...

  4. php 多图上传编辑器,laravel中使用WangEditor及多图上传

    1. 创建项目及安装所需安装包 1.1 创建项目 composer create-project laravel/laravel=5.3 blog_wangeditor --prefer-dist 1 ...

  5. wangEditor编辑器中解析html图文信息问题(三)

    以上两篇,我们主要记录了wangEditor编辑器的基础使用方法,以及上传图片部分.如果对前两篇有兴趣的,可以参考链接: http://blog.csdn.net/LJFPHP/article/det ...

  6. wangeditor:一个页面使用多个wangeditor编辑器,并对wangeditor进行组件封装以及上传图片到自己的服务器

    wangeditor使用文档:https://www.kancloud.cn/wangfupeng/wangeditor3/332599 这里记录两个地方 1.如何在富文本编辑器中上传图片到自己的服务 ...

  7. 96微信编辑器如何将样式中的二维码替换成自己的?

    现在我们编辑公众号时候,都会在后面放上公众号的二维码,引导客户识别关注.96微信编辑器上也有这样的功能,可以放很多个性样式的二维码.但是怎么替换成自己的二维码呢?这里教给大家一些. 一.在微信公众平台 ...

  8. 富文本编辑器 CKeditor 配置使用+上传图片

    参考文献: 富文本编辑器 CKeditor 配置使用 CKEditor与CKFinder的配置(ASP.NET环境),老版本可以参考 CKEditor+CKFinder ASP版在本地电脑中的配置  ...

  9. summernote富文本中上传图片并保存到Oracle数据库的问题解决

    文章目录 Summernote 问题一:Uncaught TypeError: $(...).summernote is not a function 问题二 :GET http://***/summ ...

最新文章

  1. 全文详解:「深度学习」如何协助处理医疗中的「数据难题」
  2. linux服务器上nginx日志访问量统计命令
  3. python 屏幕找图 点击_捕获屏幕并查找参考图像
  4. 把SQL Server 错误日志导出为EXCEL 并发送到指定的ftp 或者 共享盘
  5. c++判断数字是否为3的倍数的算法实现(附完整源码)
  6. 13.2.2 路由层——URL控制器
  7. matlab 矩阵数据生成.csv表格
  8. 摘要算法与加密(以MD5算法为例)
  9. python声明编码为gbk_Python字符串编码坑彻底详细解决
  10. java enumerator_NSEnumerator使用
  11. mac环境下配置gradle\maven
  12. 3.2 选择最可能的句子
  13. 世人都晓AI好 AI芯片知多少?
  14. 邮件服务器的渗透,渗透基础——从Exchange服务器上搜索和导出邮件
  15. 这些神奇 Bug,碰到真是让人目瞪狗呆!
  16. html中padding在ie8兼容性,怎么解决bootstrap在各版本IE浏览器中的兼容性问题?
  17. 失眠尽快入睡小妙招,这些助眠产品可以帮助睡眠
  18. 深度学习---人脸检测(勿喷)
  19. nginx: 405 not allowed问题解决方法
  20. POJ - 1651 Multiplication Puzzle (区间dp)

热门文章

  1. oracle手机号码检验字数_短信字数在线测试
  2. 人脸识别开源网络笔记
  3. insightface测试验证集
  4. implementation ‘com.zxy.android:recovery:
  5. pytorch维度统计
  6. pytorch 检索数组
  7. Python 进程之间共享数据(全局变量)
  8. win10 安装cuda黑屏解决
  9. c++ opencv imencode imdecode string转换
  10. OSError: [WinError 126] 找不到指定的模块/Could not find 'cudart64_90.dll'.