Моя проблема: я использую exec()
в php для преобразования файлов Powerpoint в PDF после загрузки файла.
Я использую unoconv для обработки конвертации.Код в моем скрипте - это просто exec(
) для выполнения команды оболочки:
$shellcommand = '/usr/bin/unoconv -f pdf -o "'.$filename_download.'" "'.$filename_upload.'"';
exec($shellcommand, $ret);
Итак, строка результата $shellcommand
равна
/usr/bin/unoconv -f pdf -o "<dir>/262341_Keller.pdf" "<dir>/262341_Keller.pptx"
, но теперь следующий документ имеетспециальные символы в имени файла, имя документа в $ filename_upload и $ filename_download равно "262342_Hänßler.pptx / .pdf"
Если я использую его, строка exec () будет:
/usr/bin/unoconv -f pdf -o "<dir>/262342_Hänßler.pdf" "<dir>/262342_Hänßler.pptx"
Но в этом случае документ не будет преобразован ...
Я пробовал это с utf8_decode()
и с escapeshellarg(
), но ничего не работает!
, если я переименую тот же документ, тогдаэто работает
Как я могу избежать символов в $ filename, чтобы он работал с exec ()?