2013-10-01 4 views
0

Я пытаюсь создать php cropper на основе других онлайн-руководств, но я продолжаю придумывать ошибки, и я не могу понять, что означают фактические ошибки. Вот мой PHP код с ошибками, написанных в тоже:PHP Upload & Crop Image

<?php 
include("settings.php"); 

$extension = end(explode(".", $_FILES["avatar"]["name"])); 
$id = mysqli_real_escape_string($con, $_POST["id"]); 
$time = time(); 
$avatarid= time().'-'.mt_rand(1000, 9999); 
$avatar = mysqli_real_escape_string($con, $_POST["avatar"]); 
$w= mysqli_real_escape_string($con, $_POST["w"]); 
$h= mysqli_real_escape_string($con, $_POST["h"]); 
$x= mysqli_real_escape_string($con, $_POST["x"]); 
$y= mysqli_real_escape_string($con, $_POST["y"]); 
$rw = 300; 
$rh = 300; 

$path = "../uploads/avatars/"; 
$unlink = "$path$avatar"; 
$newimage = "$path$avatar"; 

$insert_avatar_sql = "UPDATE members SET avatar = '".$avatarid.".".$extension."' WHERE id = '$id'"; 
$insert_avatar_res = mysqli_query($con, $insert_avatar_sql); 
if(mysqli_affected_rows($con)>0){ 
    unlink($unlink); 
    move_uploaded_file($_FILES["avatar"]["tmp_name"],"$path" . $avatarid . "." . $extension); 

    $wratio = ($rw/$w); 
    $hratio = ($rh/$h); 
    $newW = ceil($w * $wratio); 
    $newH = ceil($h * $hratio); 
    $newimg = imagecreatetruecolor($newW,$newH); 
    $ext=$extension; 
    if($ext=="jpg" || $ext=="jpeg") 
    { 
     $source = imagecreatefromjpeg($newimage); // Warning: imagecreatefromjpeg(../uploads/avatars/1380641918-4496.jpg) [function.imagecreatefromjpeg]: failed to open stream: No such file or directory in C:\AppServ\www\music.co.uk\php\avatar.php on line 34 
    } 
    else if($ext=="png") 
    { 
     $source = imagecreatefrompng($newimage); 
    } 
    else 
    { 
     $source = imagecreatefromgif($newimage); 
    } 
    imagecopyresampled($newimg,$source,0,0,$x1,$y1,$newW,$newH,$w,$h); // Warning: imagecopyresampled(): supplied argument is not a valid Image resource in C:\AppServ\www\music.co.uk\php\avatar.php on line 44 
uploads/1380642027-5994 
    imagejpeg($newimg,$path.$avatarid,90); 
    echo "uploads/".$avatarid; 
    exit; 

    header("Location: ../edit.php?page=profile"); 
} 
else{ 
header("Location: ../404.php"); 
exit(); 
} 
?> 

Пожалуйста, помогите мне с этим, я баловаться с Avatar закачкой в ​​течение 3 дней сплошных, и теперь я хочу, чтобы это сделать, даже если у меня есть чтобы использовать другой PHP скрипт

+0

Первая ошибка означает, что он не может найти файл, который приведет к второй ошибке, какова структура папок вашего сайта? – Pwner

+0

Путь: www.website.co.uk/uploads/avatars/ (IMAGE). Однако для этого путь должен вернуться из папки php, а затем в uploads, ../uploads/avatars/ – user2737457

+0

Итак, файл это вызывает это на www.website.co.uk/php/avatar.php – Pwner

ответ

0

для вашей первой ошибки вы передаете $ newimage в imagecreatefromjpeg(). Во время этого процесса $ newimage не имеет значения, которое imagecreatefromjpeg() может понять. Так что в принципе, если $ newimage является файлом или каталогом, это недействительно, поэтому ваша проблема - это значение, присвоенное $ newimage. (Убедитесь, что «../uploads/avatars/1380641918-4496.jpg» действителен) конечно, что сказать вам о втором предупреждении. Удачи.