2012-06-09 34 views
5

Tôi đang sử dụng jcrop để cắt ảnh trong application.I php của tôi đang sử dụng bên dưới mã để vượt qua các giá trị tọa độ và đường dẫn hình ảnh sử dụng ajax,Làm thế nào để tôi có được hình ảnh bằng cách sử dụng jquery ajax?

function checkCoords(index) 
    { 
      if (parseInt(jQuery('#w').val())){ 
        jQuery.ajax({ 
         type : "POST", 
         cache: false, 
         dataType: 'html', 
         data : { 
           x : jQuery('#x').val(), 
           y : jQuery('#y').val(), 
           w : jQuery('#w').val(), 
           h : jQuery('#h').val(), 
         image_path : jQuery('#jc-hidden-image'+index).attr('src') 
         }, 
         url  : BASE_URL+'apps/configure/cropimage', 
         success : function(response) { 
           jQuery(".preview_crop").html(response); 
         } 
        });      
      } 
      else{ 
       alert('Please select a crop region then press Crop button.'); 
      } 

Trong Controller, tôi sử dụng giá trị ajax như dưới đây,

public function cropimageAction(){ 
     $params = $this->getRequest()->getParams(); 
     //d($params); 
     if ($_SERVER['REQUEST_METHOD'] == 'POST') 
     { 
       $targ_w = $targ_h = 150; 
       $jpeg_quality = 90; 

       $src = $params['image_path']; 
       $img_r = imagecreatefromjpeg($src); 
       $dst_r = ImageCreateTrueColor($targ_w, $targ_h); 

       $image = imagecopyresampled($dst_r,$img_r,0,0,$_POST['x'],$_POST['y'],$targ_w,$targ_h,$_POST['w'],$_POST['h']); 

       header('Content-type: image/jpeg'); 
       imagejpeg($dst_r,null,$jpeg_quality); 

       exit; 
     }   
    } 

tôi đều có phản ứng như một cái gì đó giống như

( ( ( (

Thay vì hình ảnh bị cắt, có một số biểu tượng. Cần để có được hình ảnh cắt trong phản ứng ajax. Những gì tôi đã làm sai về điều này?

Trả lời

8

Bạn đang gửi dữ liệu hình ảnh đầy đủ trở lại như phản ứng, thay vì lưu hình ảnh trên máy chủ và gửi URL đến nó như là một phản ứng

thay

header('Content-type: image/jpeg'); 
imagejpeg($dst_r,null,$jpeg_quality); 

có điều này

imagejpeg($dst_r,"path/where/to/save/image.jpg",$jpeg_quality); 
echo "path/where/to/save/image.jpg"; 

Ngoài ra, chức năng thành công của bạn sẽ trông giống như

success : function(url) { 
    jQuery(".preview_crop").html('<img src="' + url + '" />'); 
} 
+0

Cảm ơn Công việc hiện tại – mymotherland

Các vấn đề liên quan