@danchikraw
Веб-додик

Как записать файл через класс Imagick?

Создал функцию для обработки файл по нужным мне параметрам через класс Imagick но при выполнении функции writeImage выдаёт ошибку.
Ошибка:



Fatal error: Uncaught ImagickException: UnableToOpenBlob 'public/materials/11.jpg': No such file or directory @ error/blob.c/OpenBlob/3315 in C:\OpenServer\domains\training\application\models\Admin.php:58
Stack trace:
#0 C:\OpenServer\domains\training\application\models\Admin.php(58): Imagick->writeimage()
#1 C:\OpenServer\domains\training\application\controllers\AdminController.php(34): application\models\Admin->postUploadImage()
#2 C:\OpenServer\domains\training\application\core\Router.php(51): application\controllers\AdminController->addAction()
#3 C:\OpenServer\domains\training\index.php(17): application\core\Router->run()
#4 {main}
thrown in C:\OpenServer\domains\training\application\models\Admin.php on line 58


Код:
function postUploadImage($path, $id) {
	$img = new Imagick($path);
	$img->cropThumbnailImage(1080, 600);
	$img->setImageCompressionQuality(80);
	$img->writeImage('public/materials/'.$id.'.jpg');
}
postUploadImage($_FILES['img']['tmp_name'], $id);

в $id просто любая цифра это не важно
  • Вопрос задан
  • 394 просмотра
Решения вопроса 1
@danchikraw Автор вопроса
Веб-додик
Решение:
function postUploadImage($path, $id) {
  $img = new Imagick($path);
  $img->cropThumbnailImage(1080, 600);
  $img->setImageCompressionQuality(80);
  $img->writeImage($_SERVER['DOCUMENT_ROOT'] . '/public/materials/'.$id.'.jpg'); // Было $img->writeImage('public/materials/'.$id.'.jpg');
}
postUploadImage($_FILES['img']['tmp_name'], $id);
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы