Здравствуйте. Пол ночи просидел.Не могу понять в чём проблема. Проверил все переменные, вроде как, правильные, но imagecopyresampled почему-то возвращает NULL* и созаёт чёрное изображение. PHP: if (copy($file_tmp_name, $file_orig_name)) { switch ($file_extension) { case 'gif': $img = imagecreatefromgif ($file_orig_name); break; case 'jpeg': $img = imagecreatefromjpeg ($file_orig_name); break; case 'png': $img = imagecreatefrompng ($file_orig_name); break; default: $errs[] = 'Недопустимый формат файла. Допустимые форматы: gif, jpeg, pjpeg, png'; break; } $file_new_name = './userFiles/'.$file_id.'.'.$file_extension; $orig_width = imageSX ($img); $orig_height = imageSY ($img); $k = round ($orig_width / 900, 3); $new_width = $orig_width / $k; $new_height = $orig_height / $k; $new_img = imagecreatetruecolor($new_width, $new_height); imagecopyresampled($file_new_name, $file_orig_name, 0, 0, 0, 0, $new_width, $new_height, $orig_width, $orig_height); switch ($file_extension) { case 'gif': $res = imagegif ($new_img, $file_new_name); break; case 'jpeg': $res = imagejpeg ($new_img, $file_new_name); break; case 'png': $res = imagepng ($new_img, $file_new_name); break; default: $errs[] = 'Недопустимый формат файла. Допустимые форматы: gif, jpeg, pjpeg, png'; break; } imagedestroy ($new_img); imagedestroy ($img); $db->query ("INSERT INTO `user_files`(`id`, `user_id`, `path`, `date`, `type`, `is_delete`) VALUES (NULL, '$user_id', '$file_new_name', '".time ()."', '$file_type', 0)"); } else { $errs[] = 'Ошибка при загрузке файла'; }
сразу скажу, могу ошибаться. а imagecopyresampled должна быть не после второго switch case? - ошибся =) --- Добавлено --- а ну да, там же не пути должны указываться
Будет досадно если выпрыгнет default на 12 строчке, а код ниже выполниться .. А я, выпилюсь, пожалуй)