Я загрузил файл MS powerpoint на свой сервер и пытаюсь использовать Google Docs viewer (http://docs.google.com/viewer), чтобы отобразить его на веб-странице.
Файл доступен здесь:
http://elgg.wamped.org/test.ppt
Если я вызываю просмотрщик документов с указанным выше URL, он работает как положено, см .:
http://docs.google.com/viewer?url=http%3A%2F%2Felgg.wamped.org%2Ftest.ppt
Но когда я пытаюсь передать тот же файл с помощью очень простого сценария php для зрителя, он не может выполнить рендеринг с не слишком полезным сообщением об ошибке: «Извините, мы не можем создать представление документа на этом время ", см .:
http://docs.google.com/viewer?url=http%3A%2F%2Felgg.wamped.org%2Freadfile.php
Сценарий, который обслуживает файл, выглядит следующим образом:
<?php
header('Content-type: application/vnd.ms-powerpoint');
header('Content-Disposition: attachment; filename="test.ppt"');
readfile('test.ppt');
?>
Я пытался поиграть с различными полями заголовка, такими как Pragma и Cache-Control, но ничего не помогло. Я также попытался нарезать выходной файл и повторить его фрагментами, что также не принесло пользы. Проверил журнал apache на сервере, проверил заголовки ответа, мне все кажется нормальным.
Есть идеи, что я здесь не так делаю?
РЕДАКТИРОВАТЬ: Хотя я не нашел решения этой проблемы, я наткнулся на сайт, который делает то же самое (или, кажется, делает больше, чем на самом деле), как Google Docs Viewer. http://embedit.in поддерживает широкий диапазон типов файлов, имеет API и прекрасно справляется со своей работой, так что я, вероятно, пойду с этим. Однако из любопытства я все же хотел бы знать, что не так с фрагментом кода ниже. Поэтому любые предложения приветствуются.