2012-05-14 151 views
2

我試圖上傳yii圖像,然後裁剪上傳的圖像,然後保存。我已經實現到現在是我可以上傳在表單提交,但我不明白的作物或使用jcrop對於任何人都可以發送該 一些有用的教程,我在我的控制器,我做的是如何圖像上傳和裁剪和保存在yii

public function actionCreate() 
{ 
    $model=new Userprofile; 
    if(isset($_POST['Userprofile'])) 
    { 
    $model->attributes=$_POST['Userprofile']; 
    $model->profilePic=CUploadedFile::getInstance($model,'profilePic'); 
    $ext = $model->profilePic->getExtensionName(); 
    $imagename=date('dmy').time().rand(); 
    $pp=$model->profilePic; 
    $model->profilePic=$imagename.'.'.$ext; 
    if($model->save()) 
     mkdir('profilepics/'.$model->id,0777); 
     $pp->saveAs('profilepics/'.$model->id.'/'.$imagename.'.'.$ext); 
     $this->redirect(array('view','id'=>$model->id)); 
    } 
    $this->render('create',array('model'=>$model,)); 
} 
+0

你要買什麼。服務器裁剪或客戶端裁剪? – dInGd0nG

+0

@ dInGd0nG客戶端裁剪,然後上傳到服務器裁剪後的圖像 –

+1

@Bipin,你必須使用閃光組件在clienside的裁剪圖像。試試這個例子http://deepliquid.com/projects/Jcrop/demos.php – Sergey

回答

3

你可以使用jquery插件imageAreaSelect獲取客戶端裁剪的座標。這裏是現場示例http://odyniec.net/projects/imgareaselect/

然後通過座標model`s beforeSave和使用Imagick :: cropImage()裁剪(而不是Imagick可以使用GD或任何其他庫你想要的)

0

NavaJcrop擴展是最好的解決辦法之一上傳和me..Here作物形象推廣的鏈接 NavaJcrop Extension

請跟隨它一步