У меня есть сценарий, который должен взять изображение и преобразовать его в .jpg. Это код, который делает это произошло:PHP: imagemagick создает пустое изображение с конвертированием
$uploadDir = $_SERVER['DOCUMENT_ROOT'] . "/blogimages/";
$tempFile = ereg_replace("'", "_", basename($_FILES['newsImg']['name']));
$uploadFile = $uploadDir . $tempFile;
move_uploaded_file($_FILES['newsImg']['tmp_name'], $uploadFile);
$newPic = $uploadDir . $blogID . ".jpg";
if(file_exists($newPic)){
unlink($newPic);
}
$convertString = "$IM -strip $uploadFile $newPic";
echo "<!-- $convertString -->";
exec($convertString);
, как можно видеть, я поставил окончательную строку в HTML-комментарий, чтобы я мог видеть то, что выполняется. Случается, что преобразованное изображение создается, но это 0-байтовое изображение. Таким образом, данные не записываются в файл. Просто чтобы убедиться, что конвертер действительно работает так, как обычно, я должен скопировать и вставить строку преобразования из комментария html в командную строку, и она работает нормально. Кажется, что в PHP exec есть проблемы. Любые мысли о том, почему это может быть?
Что такое $ IM, и вы сделали проверку ошибок на $ _FILES ['newsImg'] ['tmp_name']? –
Использование расширения PHP imagick упростит отладку ошибок (потому что проблемы затем сообщаются с помощью обычной проверки ошибок PHP) и более высокая производительность (потому что не нужно запускать новый процесс для преобразования изображений). Он не решает вашу проблему напрямую, но, вероятно, поможет отладка. –
К сожалению, я не могу добавить расширения для php. Это общий хостинг, поэтому у меня нет доступа к php.ini. – LoneWolfPR