码迷,mamicode.com
首页 > Web开发 > 详细

onethink 后台编辑器 上传图片使用七牛驱动云存储

时间:2015-05-14 18:57:30      阅读:191      评论:0      收藏:0      [点我收藏+]

标签:

首先感谢这篇文章作者:

http://blog.csdn.net/weishiyong/article/details/40060551

写的不是很详细,而且没有颜色标示。和我当前使用的OT1.0版本代码又不一样。所以参考参考思路还是可以的。

经过2小时的调试和修改已经成功实现。

下面把过程记录下来。

首先修改全局Config文件:

 ‘PICTURE_UPLOAD_DRIVER‘=>‘QINIU‘, //把原来的LOCAL改成七牛

修改七牛配置文件

 ‘UPLOAD_QINIU_CONFIG‘=>array(
        ‘accessKey‘=>‘XXXXXXXXXXXXXX‘,  //七牛通信秘钥
        ‘secrectKey‘=>‘XXXXXX‘,  //七牛通信秘钥
        ‘bucket‘=>‘XXXXXX‘, //七牛空间名称,空间设置为公开,要用到外链
        ‘domain‘=>‘XXXXX‘, //空间配置中的域名
        ‘timeout‘=>3600,
    ),

理论上改成功后就可以使用了。不过OT1.01版本不完善,需要继续修改 编辑器的控制类,修复下。

打开 Addons\EditorForAdmin\Controller\UploadController.class.php

<?php
// +----------------------------------------------------------------------
// | OneThink [ WE CAN DO IT JUST THINK IT ]
// +----------------------------------------------------------------------
// | Copyright (c) 2013 http://www.onethink.cn All rights reserved.
// +----------------------------------------------------------------------
// | Author: huajie <banhuajie@163.com>
// +----------------------------------------------------------------------

namespace Addons\EditorForAdmin\Controller;
use Home\Controller\AddonsController;
use Think\Upload;

class UploadController extends AddonsController{

	public $uploader = null;

	/* 上传图片 */
	public function upload(){
		session(‘upload_error‘, null);
		/* 上传配置 */
		$setting = C(‘EDITOR_UPLOAD‘);

		/* 调用文件上传组件上传文件 */
                /**修改开始**/
                $pic_driver = C(‘PICTURE_UPLOAD_DRIVER‘);  
                $this->uploader = new Upload($setting, C(‘PICTURE_UPLOAD_DRIVER‘),C("UPLOAD_{$pic_driver}_CONFIG"));  
		//$this->uploader = new Upload($setting, ‘Local‘);
		/**修改结束**/
                
                $info = $this->uploader->upload($_FILES);
		if($info){
			$url = C(‘EDITOR_UPLOAD.rootPath‘).$info[‘imgFile‘][‘savepath‘].$info[‘imgFile‘][‘savename‘];
			$url = str_replace(‘./‘, ‘/‘, $url);
			$info[‘fullpath‘] = __ROOT__.$url;
		}
		session(‘upload_error‘, $this->uploader->getError());
                
		return $info;
	}

	//keditor编辑器上传图片处理
	public function ke_upimg(){
		/* 返回标准数据 */
		$return  = array(‘error‘ => 0, ‘info‘ => ‘上传成功‘, ‘data‘ => ‘‘);
		$img = $this->upload();
                
                 /**修改开始**/
                $pic_driver = C(‘PICTURE_UPLOAD_DRIVER‘);   
                if (strtolower($pic_driver) == ‘local‘) {  
                    $imgurl = $img[‘imgFile‘][‘path‘];  

                } else {  
                    $imgurl = $img[‘imgFile‘][‘url‘];  
                }  
                /**修改结束**/
                
               
		/* 记录附件信息 */
		if($img){
			$return[‘url‘] = $imgurl; //修改这里
			unset($return[‘info‘], $return[‘data‘]);
		} else {
			$return[‘error‘] = 1;
			$return[‘message‘]   = session(‘upload_error‘);
		}
               
		/* 返回JSON数据 */
		exit(json_encode($return));
	}

	//ueditor编辑器上传图片处理
	public function ue_upimg(){

		$img = $this->upload();
                $return = array();
		$return[‘url‘] = $img[‘fullpath‘];
		$title = htmlspecialchars($_POST[‘pictitle‘], ENT_QUOTES);
		$return[‘title‘] = $title;
		$return[‘original‘] = $img[‘imgFile‘][‘name‘];
		$return[‘state‘] = ($img)? ‘SUCCESS‘ : session(‘upload_error‘);
		/* 返回JSON数据 */
		$this->ajaxReturn($return);
	}

}


主要修改了1.upload() 方法中加入动态加载上传驱动。

               2.ke_upimg()  这里是后台富文本框上传成功后回调函数,里面有BUG,不能返回七牛URL,经过如上修改即可。



onethink 后台编辑器 上传图片使用七牛驱动云存储

标签:

原文地址:http://my.oschina.net/caomenglong/blog/414974

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!