繁体   English   中英

如果该文件由php脚本提供服务,如何使用Google Docs Viewer在网页上嵌入ppt文件?

[英]How to use google docs viewer for embedding ppt files on a webpage, if the file is served by a php script?

我已将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,并且可以很好地完成这项工作,因此我很可能会使用它。 但是,出于好奇,我仍然想知道下面的代码段出了什么问题。 因此,任何建议都值得欢迎。

您是否尝试用.ppt文件扩展名而不是.php命名php文件? 另一个问题是您的服务器是否将在没有.php文件扩展名的文件中处理php代码。 但是Google Docs可以简单地说“不”,以加载任何带有.php扩展名的文件。

在Content-Type中将T大写。 我还提供了Content-Length标头。 我的文件处理程序现在可以工作了。

看来您可能缺少一些标题。 您可能还想查看文件是否与readfile.php位于同一目录中,因为google可能会将每个文件存储在远程服务器上。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM