2017-08-31 14 views
1

サーバ上にあるmswordファイルがあります。クライアントシステムのmswordファイルをmswordで強制的に開きます。

私は、ユーザーが開こうとしたときに、自分のコンピュータでmsword で直接開きます。です。

<?php 
$document ='MyWordDocument.docx'; 

/**Function to extract text*/ 
function extracttext($filename) 
{ 
    //Check for extension 
    $ext = end(explode('.', $filename)); 

    //if its docx file 
    if($ext == 'docx') 
     $dataFile = "word/document.xml"; 
    //else it must be odt file 
    else 
     $dataFile = "content.xml";  

    //Create a new ZIP archive object 
    $zip = new ZipArchive; 

    // Open the archive file 
    if (true === $zip->open($filename)) { 
     // If successful, search for the data file in the archive 
     if (($index = $zip->locateName($dataFile)) !== false) { 
      // Index found! Now read it to a string 
      $text = $zip->getFromIndex($index); 
      // Load XML from a string 
      // Ignore errors and warnings 
      $xml = DOMDocument::loadXML($text, LIBXML_NOENT | LIBXML_XINCLUDE | LIBXML_NOERROR | LIBXML_NOWARNING); 
      // Remove XML formatting tags and return the text 
      return strip_tags($xml->saveXML()); 
     } 
     //Close the archive file 
     $zip->close(); 
    } 

    // In case of failure return a message 
    return "File not found"; 
} 

echo extracttext($document); 

私は上記のコードを試しましたが、このコードはブラウザでコンテンツを読み取り表示します。 PHPを使用してこれを達成できますか?

+1

これはあなたが制御できません。ブラウザでコンテンツを表示しなくても(おそらくWordプラグインを使用しているので、基本的にはWordで、一部のツールバーは隠している)、ファイルは単にダウンロード用に提供されます。ユーザーに強制的にダウンロードさせることはできません。そうした場合は、強制的に開くことはできません。ブラウザがランダムなファイルをディスクに強制的にダウンロードして開く可能性があり、ウィルスがどこにでも存在する可能性がある場合、セキュリティ上のリスクがあると考えてください。あなたが今持っている解決策は、実際にはおそらく最も使いやすいでしょう。 – ADyson

+0

N.B.ブラウザにWordファイルを表示するための互換プラグインがインストールされていないユーザーは、自動的に表示する代わりにダウンロードプロンプトが表示されている可能性があります。一部のブラウザChromeは、提供されているファイルを自動的にダウンロードするように設定することもできます。多分あなたもそれを開くように設定することができます、私は知らない。しかし、これは危険にさらされているセキュリティのため、個々のユーザーの自由裁量に基づいています。あなたのサーバー側のコードは、ファイルに何が起こるかについては何の言い方もしていません。 – ADyson

答えて

0

あなたが達成できるのは、ファイルをユーザーのコンピュータにダウンロードすることだけです。ファイルを開くように強制することは不可能です。どうして?セキュリティ。

*またはダウンロードダイアログを表示するには、ブラウザと設定によって異なります。

関連する問題