【问题标题】:How can I view/open a word document in my browser using with PHP or HTML如何使用 PHP 或 HTML 在浏览器中查看/打开 word 文档
【发布时间】:2010-12-03 13:45:49
【问题描述】:

如何在浏览器中打开和查看.doc 文件扩展名?该文件位于我的服务器上。

【问题讨论】:

    标签: php html file ms-word


    【解决方案1】:

    两个选项:首先是链接到它,例如<a href="MyWordDocument.doc">My Word Document</a>,第二种是使用iframe,指向文档。然而,为了使其工作,大多数浏览器要求服务器随文档发送一个Content-disposition: inline 标头。如果您无法配置您的网络服务器来执行此操作,您可以将文档包装在一些 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 才能正确显示它(Open Office 和其他一些开源应用程序做得不错,但还没有完全实现),并且浏览器必须支持将 Word 作为插件打开。

    如果 .doc 文件格式要求不是一成不变的,那么 PDF 将是一个更好的选择(转换通常就像在 PDF 打印机上打印一样简单,例如,CutePDF,从 Word 内部),或者也许你甚至可以将文档转换为 HTML(虽然里程可能会有所不同)。

    【讨论】:

    • 确实,开放式办公室在显示.doc 文件时并非100% 准确,但对于MS-Word 也是如此。两者的失败率大致相同;问题在于.doc 格式。
    • 如何创建可编辑的内容,例如一旦打开,如果有人进行更改,它会在服务器上更新?
    【解决方案2】:
    <a href="foo.doc">…</a>
    

    您需要一个安装了 Office 文档插件的浏览器。我相信 Microsoft Office 至少会默认为 Internet Explorer 安装一个。

    如果您想在没有插件的情况下工作,那么您需要将文档转换为另一种格式——HTML 以获得最大的兼容性。这不是一个简单的操作,尤其是对于复杂的文档(甚至是那些只包含图像的文档)。

    【讨论】:

      【解决方案3】:
      $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);
      

      【讨论】:

      • 我尝试了其他答案的headers,但文件已损坏,这个答案的headers 终于奏效了。
      【解决方案4】:

      您可以改用 google docs,因为它免费且可靠 您可以将文件路径分配给 iframe。

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

      【讨论】:

      【解决方案5】:

      如果您的 .doc 文件可以在线访问,您可以尝试Office Web Viewer 服务。

      如果你的文件存储在Intranet,你可以使用Microsoft Office Web AppsServer。它允许用户通过浏览器查看 Word、PowerPoint、Excel 文档。

      【讨论】:

      • 受密码保护的文件怎么样?我的意思是我的 doc 文件,登录后可以访问。
      【解决方案6】:
      //Edit
      $header="Content-Disposition: attachment; filename=$file_name.doc;"; // Send File Name
      

      【讨论】:

      • 感谢您的反馈和建议的解决方案。我相信 OP 会很高兴详细说明如何使用它以及它的作用。
      • 这不能回答问题。这将下载文件(包括其他头参数)
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-29
      • 1970-01-01
      • 2020-10-12
      • 1970-01-01
      相关资源
      最近更新 更多