Как использовать Google Docs Viewer для встраивания файлов ppt на веб-страницу, если файл обслуживается скриптом php? - PullRequest
1 голос
/ 22 октября 2010

Я загрузил файл 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 и прекрасно справляется со своей работой, так что я, вероятно, пойду с этим. Однако из любопытства я все же хотел бы знать, что не так с фрагментом кода ниже. Поэтому любые предложения приветствуются.

Ответы [ 3 ]

2 голосов
/ 27 октября 2010

Вы пытались назвать файл php с расширением .ppt вместо .php? Будет ли ваш сервер обрабатывать php-код в файле, который не имеет расширения .php, это другая проблема. Но Документы Google могут просто сказать НЕТ загрузке любого файла с расширением .php.

1 голос
/ 31 августа 2011

С заглавной буквы T в Content-Type. Я также предоставил заголовок Content-Length. Мой обработчик файлов работает сейчас.

0 голосов
/ 22 октября 2010

Похоже, вам не хватает некоторых заголовков. Вы также можете посмотреть, находится ли файл в том же каталоге, что и readfile.php, поскольку Google может хранить каждый файл на удаленном сервере.

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