#php #phpword
#php #phpword
Вопрос:
Я пытаюсь отобразить предварительный просмотр встроенного документа Word с помощью Office live view. Я не хочу использовать сохраненный файл .docx. Я использую библиотеку PHPWORD для создания документа, используя ее класс templateprocessing.
Все работает, когда я ссылаюсь на путь к сохраненному документу, но не как на вывод php.
Что у меня есть до сих пор
HTML
<iframe src='https://view.officeapps.live.com/op/embed.aspx?src=https://homeurl.com/panel/export?code=MYaM14lMfqm8NFYxpO67amp;id=43' ' width='1366px' height='623px' frameborder='0'></iframe>
И на стороне сервера у меня есть:
PHP
header("Cache-Control: public");
header("Content-Description: File Transfer");
header("Content-Disposition: attachment; filename=" . $params['document_name']. ".docx");
header("Content-Transfer-Encoding: binary");
$templateProcessor->saveAs("php://output");
Предварительный просмотр iframe сообщает, что он не может прочитать файл.
Я думаю, что это как-то связано с информацией заголовка, но я еще не нашел решения для этого.
Ответ №1:
Я обнаружил, что это не работает, если URL-адрес файла не содержит имя файла и расширение, как в вашем случае. Каким-то образом это работает, если вы измените свой URL:
<iframe src='https://view.officeapps.live.com/op/embed.aspx?src=https://homeurl.com/panel/export/file.docx?code=MYaM14lMfqm8NFYxpO67amp;id=43' ' width='1366px' height='623px' frameborder='0'></iframe>
Не могу найти никакой документации, чтобы узнать, есть ли лучший способ заставить его работать.