web-dev-qa-db-ja.com

PHPまたはHTMLを使用して、ブラウザでWordドキュメントを表示/開くには

ブラウザで.docファイル拡張子を開いて表示するにはどうすればよいですか?ファイルは私のサーバーにあります。

13
Ruben

2つのオプション:最初は、単にそれにリンクすることです。 <a href="MyWordDocument.doc">My Word Document</a>、2つ目は、iframeを使用してドキュメントを指すことです。ただし、これを機能させるには、ほとんどのブラウザで、サーバーがドキュメントとともにContent-disposition: inlineヘッダーを送信する必要があります。これを行うようにWebサーバーを構成できない場合は、ドキュメントを少しのphpでラップできます。

<?php
header('Content-disposition: inline');
header('Content-type: application/msword'); // not sure if this is the correct MIME type
readfile('MyWordDocument.doc');
exit;

そして、Word文書の代わりにそのスクリプトにリンクします。

ただし、これが機能するとは限りません。 content-dispositionヘッダーは単なるヒントであり、いずれのブラウザもそれを添付ファイルとして扱うことを選択できます。

また、.docは完全に移植可能ではないことに注意してください。基本的に、Wordを正しく表示するにはWordが必要です(Open Officeと他のいくつかのオープンソースアプリケーションはまともな仕事をしますが、まだそこにはありません)。ブラウザーはWordをプラグインとして開くことをサポートする必要があります。

.docファイル形式の要件が適切に設定されていない場合は、PDFの方が適しています(通常、変換はPDF =プリンタ、たとえば、CutePDF、Word内から)、またはドキュメントをHTMLに変換することもできます(ただし、距離は異なる場合があります)。

18
tdammers
<a href="foo.doc">…</a>

Officeドキュメントのプラグインがインストールされたブラウザが必要です。 Microsoft Officeでは、デフォルトで少なくともInternet Explorerの1つがインストールされると思います。

プラグインなしで作業したい場合は、ドキュメントを別の形式に変換する必要があります—互換性を最大にするためにHTMLを使用します。これは、特に複雑なドキュメント(または画像のみを含むドキュメント)の場合、簡単な操作ではありません。

6
Quentin

.docファイルにオンラインでアクセスできる場合は、 Office Web Viewer サービスを試すことができます。

ドキュメントがイントラネットに保存されている場合は、 Microsoft Office Web Apps サーバーを使用できます。これにより、ユーザーはブラウザを介してWord、PowerPoint、Excelドキュメントを表示できます。

4
yesnik

無料で信頼性が高いため、代わりにgoogle docsを使用できます。ファイルパスをiframeに割り当てることができます。

例えばiframe1.Attributes.Add( "Src"、 " http://docs.google.com/gview?url=http://YOUR_FILE_PATH&embedded = true ");

2
Hardik Mali
$file = "$file_name.doc";
$len = filesize($file); // Calculate File Size
ob_clean();
header("Pragma: public");
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Cache-Control: public"); 
header("Content-Description: File Transfer");
header("Content-Type:application/Zip"); // Send type of file
$header="Content-Disposition: attachment; filename=$patient_name.Zip;"; // Send File Name
header($header );
header("Content-Transfer-Encoding: binary");
header("Content-Length: ".$len); // Send File Size
@readfile($file);
1
emeka
//Edit
$header="Content-Disposition: attachment; filename=$file_name.doc;"; // Send File Name
0
emeka