pdf — PHP не может открывать файлы, сгенерированные ghostscript

У меня есть небольшая функция PHP, которая использует ghostscript, чтобы взять многостраничный PDF и преобразовать его в несколько PNG. Эта часть скрипта работает отлично, я могу запустить его и проверить папку с изображениями, и они все там.

Следующая часть скрипта изменяет размер png, созданных ghostcript. Однако любая попытка использовать эти png в php приводит к «не удалось открыть поток: нет такого файла или каталога»

Более того, если скопировать один из сгенерированных png-файлов в другую папку или даже в ту же папку, она станет читаемой. Это приводит меня к мысли, что сгенерированные ghostscript изображения могут иметь неправильные разрешения. Но когда я запускаю свой скрипт, чтобы проверить наличие разрешений и существует ли файл. оба возвращают false.

Вот скрипт конвертации:

    <?php
//Upload pdf convert to pngs in the folder jpgs/originals
$uploaddir = 'uploadtemp/';
$uploadfile = $uploaddir . basename($_FILES['userfile']['name']);
echo "<p>";
if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) {

exec('bin\gswin32c.exe -o jpgs\originals\%3d.png -sDEVICE=png16m -r150 uploadtemp\input.pdf');
unlink('uploadtemp\input.pdf');
header('Location: main.php');
} else {
echo "Upload failed";
}
?>

Вот скрипт, который пытается вызвать теперь сгенерированные pngs:

 <?php
$filename = "jpgs/originals/1.png";

if (is_writable($filename)) {
echo 'The file is writable';
} else {
echo 'The file is not writable';
}

if (file_exists($filename)) {
echo "The file $filename exists";
} else {
echo "The file $filename does not exist";
?>

Оба оператора if возвращают false, хотя я вижу файлы, созданные в папке

0

Решение

Это, конечно, странная проблема, при запуске параметра ghostscript:jpgs\originals\%3d.png он создает файлы с двумя пробелами перед цифрой. Так что вызов файла 2.png не работает, потому что он не существует, но если вы вызываете [space] [space] 2.png, он работает! И когда Windows копирует файл, он должен удалить лишние пробелы или что-то еще.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]