KindEditor图片上传到七牛云
版本说明:
KindEditor版本:4x
七牛SDK:7.x.x
后端脚本:PHP
先看一下七牛给出的表单模板,在这里file和token这两个表单项是必须的
1.修改KindEditor的plugins/image/image.js文件
在第20行这里把上传文件的name字段改成和七牛的一致,即name="file",注释的那行是原代码
第二处改动是本地图片上传部分,这里只做本地图片上传的修改,其他都是类似的,包括文件的上传
将action的地址改为七牛的上传入口:http://upload.qiniu.com/,原本的处理地址是/php/upload_json.php
添加一个隐藏的表单项:
至于file项这里看不到是因为它是另外加载的,就是hiddenElements.join('');这个,前面已经把file的name改了就好了
到这里,我们已经把基本的表单项添加到KindEditor了,但是token现在并没有value,接下来是实现ajax向服务器获取token
我的做法是直接在image.js这个文件的末尾写了个获取的token的函数:
这里因为是异步的方式,我只好使用jQuery去更改上面token的value,当然,用原生js实现会更好,不用去加载jQuery,我自己用getElementById去直接设置value貌似不行,折腾了好久不知道什么原因,本来jQuery的用的是val()方法也不奏效,只好给成attr()
上面这个是上传之后的回调函数,返回的数据是json格式,两个参数,当然后面添加处理回调的程序,回调参数个数可以自行设置
上传成功:
{"error":0,"url":"https:\/\/dn-lanbaidiao.qbox.me\/FryyQrpKYDDZrkJGWchh9_9og6Du"}
上传失败:
{"error":1,"message":"xxx错误信息"}
ps,这个函数不需要做任何修改,视个人情况而定,这里只是做一下说明
到这里,KindEditor就修改完成了,接下来是修改七牛的php文件以及增加一个callBack.php和getToken.php
2.后端代码的修改
先下载七牛的SDK源码,我这里使用的是PHP的:七牛SDK(PHP版本)
目录结构是这样
主要修改src/Qiniu/Auth.php这个文件,并在相同目录下添加