1

MS パワーポイント ファイルをサーバーにアップロードしました。Google ドキュメント ビューアー (http://docs.google.com/viewer) を使用して Web ページに表示しようとしています。ファイルは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 を備えており、うまく機能するので、おそらくそれを使用します。ただし、好奇心から、以下のコードの何が問題なのかを知りたいです。したがって、どんな提案も大歓迎です。

4

3 に答える 3

2

.php ではなく .ppt ファイル拡張子を使用して php ファイルに名前を付けてみましたか? サーバーが .php ファイル拡張子を持たないファイルの php コードを処理するかどうかは、別の問題です。しかし、Google ドキュメントは、拡張子が .php のファイルをロードすることに対して単純に NO と言うかもしれません。

于 2010-10-26T22:39:51.913 に答える
1

Content-Type の T を大文字にします。Content-Length ヘッダーも提供しました。ファイルハンドラーが動作するようになりました。

于 2011-08-30T21:13:36.207 に答える
0

一部のヘッダーが欠落している可能性があります。また、Googleが各ファイルをリモートサーバーに保存する可能性があるため、ファイルがreadfile.phpと同じディレクトリにあるかどうかを確認することもできます。

于 2010-10-22T11:17:01.750 に答える