PHP imagejpeg()不在服务器上工作

时间:2015-09-10 19:54:13

标签: javascript php jquery ajax image

我正在为我的网站制作图像裁剪功能。我向我的PHP脚本发送了一个裁剪图像尺寸(x,y,宽度,高度)的数组;

该脚本成功地在我的localhost上裁剪图像,但在推送到我的Web服务器时不起作用。

<?php
    $array = json_decode(file_get_contents('php://input'));

    $targ_w = 542;
    $targ_h = 671;

    $src = $array[0];
    $img_r = imagecreatefromjpeg($src);
    $dst_r = ImageCreateTrueColor( $targ_w, $targ_h );

    imagecopyresampled($dst_r,$img_r,0,0,$array[1],$array[2],
    $targ_w,$targ_h,$array[3],$array[4]);

    $time = time();

    if (imagejpeg($dst_r, 'temp_crops/temp_'.$time.'.jpg'))
        echo "made it";
    else
        echo "didnt make it :(";

    //echo $time;
?>

AJAX Post:

$('#crop_modal').on('hidden.bs.modal', function () {
            var array = [$('#profile_preview').attr('src'), $('#x').val(), $('#y').val(), $('#w').val(), $('#h').val()];
            if (checkCoords()) {
                $.ajax({
                    url : '../../application/views/poster/crop.php',
                    type: 'POST',
                    data : JSON.stringify(array),
                    success: function(data) {
                        console.log(data)
                        $('#profile_preview').attr('src', '../../application/views/poster/temp_crops/temp_'+data+".jpg");
                        $('#final_img_src').val('temp_'+data+'.jpg');
                    }
                });
            }
        });

本地主机响应为:made it。 Web服务器响应为:didnt make it :(

任何人都可以帮助我并告诉我为什么这不起作用?谢谢!

2 个答案:

答案 0 :(得分:0)

检查GD库 - 在脚本中使用if(!function_exists('imagejpeg'))... 否则错误日志可能在/ var / log / httpd /

答案 1 :(得分:0)

该错误表示您的PHP脚本无权写入服务器上的该位置。使用您的FTP软件CHMOD(更改权限)以允许写入您尝试存储这些目录的目录。除非您的webhost已禁止PHP在本地写入文件,否则应该这样做(在这种情况下,您应该与他们交谈)并查看可用的选项。