Как использовать специальные символы в именах файлов в exec () - PullRequest
0 голосов
/ 23 ноября 2018

Моя проблема: я использую 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 ()?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...