imagecopyresampled返回null

时间:2014-02-20 11:44:14

标签: javascript php

我有以下代码:

$fullImg = $_POST['img'];
$avatar_name = $log_username.md5(uniqid()).'_avatar.jpg';
$avatar_path = '../user/'.$log_username.'/';
$avatar_new = $avatar_path.$avatar_name;
$target_h = $target_w = 150;
$x = $_POST['x'];
$y = $_POST['y'];
$w = $_POST['w'];
$h = $_POST['h'];
$qual = 90;

$orig_image = imagecreatefromjpeg($fullImg);
$new_image = imagecreatetruecolor($target_w,$target_h);

imagecopyresampled($new_img,$orig_image,0,0,$x,$y,$target_w,$target_h,$w,$h);

imagejpeg($new_image,$avatar_new,$qual);

我的error_log中有一个错误:

  

警告:imagecopyresampled()期望参数1为资源,给定

为null

我猜这与我的$_POST['img']变量是一个完整的网址有关:

http://domain.com/images/image.jpg

我在php.ini文件中将allow_url_fopen设置为1。我认为这可能会解决它。

它只是一个完整的网址,因为js将其作为var img = _('uloadedImg').src;读取,尽管设置为../images/image.jpgvar img = _('uloadedImg').src;仍会返回完整的网址。

有没有办法从图像中获取src而没有js中的完整url?或者除了那个以外我的脚本有什么问题吗?

1 个答案:

答案 0 :(得分:2)

存在类型错误,您指定$new_img而不是$new_image

$new_image = imagecreatetruecolor($target_w,$target_h);
imagecopyresampled($new_img,$orig_image,0,0,$x,$y,$target_w,$target_h,$w,$h);
                      ^ 

尝试以下:

imagecopyresampled($new_image,$orig_image,0,0,$x,$y,$target_w,$target_h,$w,$h);
相关问题