zoukankan      html  css  js  c++  java
  • 使用ThinkPHP上传类处理KindEditor上传的图片

    KindEditor作为一款可视化的HTML编辑器用起来确实比较方便,其本身也自带了图片上传的处理
    这里修改为TP上传处理图片,是为了保证上传图片的方便(目录独立于编辑器,便于增加水印等处理)

    第一步:在模板html页面引入如下文件:

    <link rel="stylesheet" href="/data/editor/plugins/code/prettify.css" />
    <script charset="utf-8" src="/data/editor/kindeditor.js"></script>
    <script charset="utf-8" src="/data/editor/lang/zh_CN.js"></script>
    <script charset="utf-8" src="/data/editor/plugins/code/prettify.js"></script>
    <script>
    	KindEditor.ready(function(K) {
    		var editor1 = K.create('textarea[name="content"]', {
    			cssPath : '/data/editor/plugins/code/prettify.css',
    			uploadJson : "/Home/Common/upload",//图片上传后的处理地址
    		});
    		prettyPrint();
    	});
    </script>

    路径根据自己的项目不同,正确引入即可,uploadJson : "/Home/Common/upload",
    uploadJson后面的就是编辑器上传图片的处理地址,可以根据自己的自行配置
    这里交由Home分组的Common控制器的upload方法处理图片上传

    第二步:自定义上传处理函数

    function upload(){	
    	header("Content-Type:text/html;charset=utf-8");
        import('ORG.Net.UploadFile');
    
        $upload = new UploadFile();
    	$upload->maxSize  = 3145728;
    	$upload->allowExts  = array('jpg', 'gif', 'png', 'jpeg');
    	
    	$upload->autoSub=true;
    	$upload->subType='date';
    	$upload->dateFormat='Ym';	
    	$upload->savePath =  './upload/article/';
    	
    	if(!$upload->upload()){
    		$error['error']=1;
    		$error['message']=$upload->getErrorMsg();
    		exit(json_encode($error));
    	}
    	
    	$info=$upload->getUploadFileInfo();
    	
    	/*图片水印处理
    	import('ORG.Util.Image');
    	$image = new Image();
    	$image->water($upload->savePath.$info[0]['savename'],'./data/water.png');*/
    	
    	$data=array(
    		'url'=>str_replace('./','/',$upload->savePath).$info[0]['savename'],
    		'error'=>0
    	);
    	
    	exit(json_encode($data));		
    }

    这里使用ThinkPHP的上传类处理图片上传,也可以自己写,唯一需要注意的就是返回的格式

    查看了下官方的文档:
    上传正确返回这种JSON串
    {
        "error" : 0,
        "url" : "http://www.example.com/path/to/file.ext"
    }
    上传失败返回这种JSON串
    {
        "error" : 1,
        "message" : "错误信息"
    }

    特别需要注意的一点就是返回的error一定要用整数1或是0,别用字符串'1'或'0'
    原因是plugins/image/image.js的结果判断是 恒等于 ===
    (当初自己就是因为PHP端返回的是字符串形式的'0'不等于整数的0导致上传之后总是弹窗报错)

  • 相关阅读:
    第五章 调优案例分析与实战
    第六章 类文件结构
    推送和即时通迅早写完了,,一直没更新,,期末考了。
    Node.js安装备忘录
    将MyEclipse项目导入到Eclipse中
    40个Java集合类面试题和答案(转载)
    可适配平板、手机的Web开发方式
    一次Web请求过程详解
    常见HTTP状态码
    Web前端视频播放及视频的云存储
  • 原文地址:https://www.cnblogs.com/sheevy/p/4010631.html
Copyright © 2011-2022 走看看