我已经将一个 MS PowerPoint 文件上传到我的服务器,我正在尝试使用 Google Docs 查看器 (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,而且做得很好,所以我可能会选择那个。但是,出于好奇,我仍然想知道下面的代码有什么问题。因此,任何建议都非常受欢迎。