【问题标题】:Passing a file into browser using header() php使用 header() php 将文件传递到浏览器
【发布时间】:2016-08-04 22:53:27
【问题描述】:

是否可以使用 header() 函数或其他 php 函数在本地将文件传递给浏览器?

我目前正在使用 Chrome。我安装了 Office Editing for Docs 扩展程序,它基本上允许我通过将完整目录和文件名传递到 Chrome 的 URL 地址栏中,在本地打开 Word docx 文件到我的 Chrome 浏览器中。这实质上是在 Chrome 中打开 Word 文件。我想在 php 中完成这个任务

我尝试了以下方法,但没有成功。

header( 'Location: file://c:\users\jbloggs\desktop\test.docx' );

我知道 header() 函数主要用于重定向到网页

header( 'Location: http://www.google.com' );

非常感谢任何帮助。

【问题讨论】:

  • PHP 是服务器端的,无法在客户端打开文件。
  • 您需要养成accepting answers 的习惯,它可以帮助您解决问题。您将获得积分并且将鼓励其他人帮助您
  • 问题是:为什么? 你安装了 webserver/php 吗?你真的想在这里做什么?
  • Check out tdammer's answer here 希望对您有所帮助!
  • 好的,大卫;你已经得到了一个答案(并且一个会被删除的答案)。询问他们或 ping 我们中的一个。我已经在这里度过了足够的时间。或者,等待@JayBlanchard 已经指出的你可以接受的魔法。就目前而言,您之前提出的所有问题仍被视为未解决/未解决的问题,而这个问题也是一样的,所以我出局了,祝你好运。

标签: php


【解决方案1】:

这种方式不起作用,因为您试图从远程服务器重定向到本地文件路径。出于安全考虑,Chrome 不接受这一点。请注意,您的 Web 服务器是否在同一台物理机器上运行并不重要,它被视为与本地文件系统分开的服务器。但是,您可以使用普通 HTML 完成此任务:

<a href="file://c:\users\jbloggs\desktop\test.docx">Document</a>

如果您将其保存到静态 HTML 文件并在浏览器中打开它,您应该会在单击时重定向到该文档。如果您想要直接重定向,请使用 JavaScript window.location 但是您不能像上面提到的那样从 HTTP 服务器提供文件。

如果您想这样做,您还必须从您的服务器提供 .docx 文件,将其包含为静态内容,然后也通过 HTTP 链接到它。

希望这会有所帮助!

【讨论】:

  • 但是 PHP 为什么要知道呢?它只需要将该值传递给浏览器。它可以很高兴地重定向到magnet: URL 等等,肯定它没有原生支持吗?
  • 是的,我过于简单化并且使我的答案有误。请参阅我的编辑。我实际上不确定是否完全不可能通过 php 进行重定向,但这肯定不是最佳实践。最佳做法是也从您的服务器而不是本地文件系统提供 .docx 文件。
  • 我完全同意这一点。我只是想知道为什么其他 URL 有效但 file:// 无效。不过,这将是一个浏览器安全功能是有道理的。
猜你喜欢
  • 2016-08-02
  • 1970-01-01
  • 1970-01-01
  • 2023-03-21
  • 2010-09-23
  • 2014-07-24
  • 2015-05-17
  • 1970-01-01
  • 2011-12-18
相关资源
最近更新 更多