我有以下代码:
$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.jpg
,var img = _('uloadedImg').src;
仍会返回完整的网址。
有没有办法从图像中获取src而没有js中的完整url?或者除了那个以外我的脚本有什么问题吗?
答案 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);