Yii剪辑头像扩展-----CropZoom [ 新手入门 ]
在Yii中剪辑头像,困扰了很长时间,终于在官网找到了CropZoom。很好用的插件。 插件下载: 需求:Yii 1.1或更高版本 用法:下载cropzoom包,解压后放到extensions目录下。 在view层中和其它widget用法一样: 下面是个例子:视图的名字叫cropzoom.php
<?php
$this->widget('ext.cropzoom.JCropZoom', array(
'id' => 'cropZoom1',
//'containerId'=>'crop_container1',
'callbackUrl'=>$this->createUrl('controllerID/handleCropZoom'),
'onServerHandled' => 'js:function(response){
alert(response);
//if server end give you an json string
//use the $.parseJSON() to decode it !
}',
'image'=>array(
//note if you didn't give an image source url will use the sample image for testing ! //'source'=>'http://a1.att.hudong.com/11/11/01300000334334123287112954864.jpg'
)
));
?>
<div>
<a href="javascript:;" onclick="cropZoom1.restore();">restore image</a>
</div>
<div id="examples">
<div id="crop_container1"></div>
</div>
在控制器中,加入以下的两个方法。
/**
*这个方法是控制器中用来render()到视图的方法,可以根据个人需求去更改它
*/
public function actionCropZoom(){
if(Yii::app()->request->getIsAjaxRequest()){
//print_r($_POST);
//die;
Yii::import('ext.cropzoom.JCropZoom');
$saveToFilePath = Yii::getPathOfAlias('webroot.assets').DIRECTORY_SEPARATOR .'cropZoomTest';
JCropZoom::getHandler()->process($saveToFilePath,true)->process($saveToFilePath.'.jpeg');
die($saveToFilePath);
}
$this->render('cropzoom');
}
/**
* 这个方法是用来处理剪辑图片的方法
*/
public function actionHandleCropZoom(){
if(Yii::app()->request->getIsAjaxRequest()){
//print_r($_POST);
//die;
Yii::import('ext.cropzoom.JCropZoom');
$saveToFilePath = Yii::getPathOfAlias('webroot.assets').DIRECTORY_SEPARATOR .'cropZoomTest';
JCropZoom::getHandler()->process($saveToFilePath,true)->process($saveToFilePath.'.jpeg');
die('cropped file path : '.$saveToFilePath);
}
}
有必要的话可以对源码进行更改,来满足个人需求。 希望能够帮到大家~!
共 11 条回复
-
下面那个函数就是用来处理剪切的图片的。给你个例子
public function actionHandleCropZoom(){ //print_r($_POST); //die; $model = new User(); $sessionUid = $model->getUid(); if(Yii::app()->request->getIsAjaxRequest()){ $cropImg = 'cropImg';//剪切图片要保存成的名称 $path = Yii::getPathOfAlias('webroot').'/temp/'; //剪切图片存储路径 Yii::import('ext.cropzoom.JCropZoom');//使用JCropZoom扩展 $saveToFilePath = $path.$cropImg; //获取扩展名 $extName = $this->getExtName($sessionUid); JCropZoom::getHandler()->process($saveToFilePath,true)->process($saveToFilePath.$extName); } }
其中
getExtName($sessionUid);
是获取上传图片的扩展名。根据自己的实际情况,写个函数就行了 -
lvwentong76 回复于 2012-04-27 13:57 举报
不好用 Chrome 有bug
-
lvwentong76 回复于 2012-05-29 09:46 举报
有加强啊,赞一下~
-
lis_cookie 回复于 2015-09-01 09:20 举报
现在正好在做这个上传头像,没太多思路~~~
猫咪兔
注册时间:2012-02-04
最后登录:2019-08-09
在线时长:3小时41分
最后登录:2019-08-09
在线时长:3小时41分
- 粉丝1
- 金钱1045
- 威望0
- 积分1075