2013-02-23 2 views
1

Я использую jcrop для создания изображений.
, но полученное изображение с урожаем не сохраняется, я имею в виду, когда я щелкаю правой кнопкой мыши и сохраняю изображение, вместо этого он сохраняет файл .php.
Вот код используется:Почему заголовок изображения не позволяет мне сохранить изображение?

if ($_SERVER['REQUEST_METHOD'] == 'POST') { 
$targ_iw = $_REQUEST['iwidth']; 
$targ_ih = $_REQUEST['iheight']; 
$source = $_REQUEST['tname']; 
if(empty($targ_iw)){ 
    $targ_iw = $_POST['w']; 
    $targ_ih = $_POST['h']; 
    } 
    $jpeg_quality = 90; 

    $src = 'http://www.imageopti.com/crop/files/'.$source; 
    $img_r = imagecreatefromjpeg($src); 
    $dst_r = ImageCreateTrueColor($targ_iw, $targ_ih); 

    imagecopyresampled($dst_r,$img_r,0,0,$_POST['x'],$_POST['y'], 
    $targ_iw,$targ_ih,$_POST['w'],$_POST['h']); 

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

А что внутри PHP файл? – zerkms

+0

Верхний код php, упомянутый выше, представляет собой форму html/jquery, которая отправляет данные в эту часть для создания обрезки. –

+0

Нет, я имел в виду - вы пытались открыть сохраненный файл php? – zerkms

ответ

1
  • В вашем HTML код, добавьте

    <input type="hidden" name="create" value="true" /> 
    
  • Добавить моя функция

    function new_my_resampled($source, $iwidth, $iheight, $w, $h, $x, $y) 
    { 
        $filename = "http://www.imageopti.com/crop/files/" . $source; 
    
        $targ_iw = $iwidth; 
        $targ_ih = $iheight; 
        if(empty($targ_iw)) 
        { 
         $targ_iw = $w; 
         $targ_ih = $h; 
        } 
    
        $image = imagecreatetruecolor($targ_iw,$targ_ih); 
        $o_img = imagecreatefromjpeg($filename); 
        imagecopyresampled($image,$o_img,0,0,$x,$y,$targ_iw,$targ_ih,$w,$h); 
        imagejpeg($image, null, 100); 
    } 
    
  • В файле PHP добавить

    if($_POST['create'] == 'true') 
    { 
        /* 
        * Write here your conditions 
        */ 
    
        $filename = "http://www.imageopti.com/crop/files/" . $_POST['tname']; 
        $f_name = trim(basename($filename)); 
        //$f_size = getSizeFile($filename); 
        header("(anti-spam-content-type:) image/jpeg"); 
        header('Cache-control: max-age=31536000'); 
        header('Expires: ' . gmdate('D, d M Y H:i:s', (time() + 31536000)) . ' GMT'); 
        header('Content-transfer-encoding: binary'); 
        header('ETag: "' . time() . '"'); 
        header("Content-Disposition: attachment; filename=" . $f_name); 
        header("Content-type: image/jpeg"); 
        header("Content-Type: application/octet-stream"); 
        header("Content-Type: application/download"); 
        header("Content-Description: File Transfer"); 
        //header("Content-length:" . $f_size); 
        header("Cache-control: private"); 
        new_my_resampled($_POST['tname'], $_POST['iwidth'], $_POST['iheight'], $_POST['w'], $_POST['h'],$_POST['x'],$_POST['y']); 
    } 
    
  • !!! Если вы хотите использовать $f_zise и header("Content-length:" . $f_size); вы можете использовать эту функцию getSizeFile из php.net

Пожалуйста, проверить его ...

+0

Проблема с сохранением. Попробуй сам. здесь: http://www.imageopti.com/index_crop.php?name=1361661584.jpg –

+0

по мере того, как вы получаете изображение с вырезанным контуром. щелкните правой кнопкой мыши и нажмите save –

+0

Я редактирую это, пожалуйста, попробуйте и скажите мне, все ли в порядке! –

Смежные вопросы