【发布时间】:2008-09-17 05:07:08
【问题描述】:
我似乎找不到太多关于 X-Sendfile 的文档或 PHP 的示例代码(有一些 rails 代码)。
任何人以前使用过它并且介意快速提供代码和简要说明吗?
【问题讨论】:
标签: php apache x-sendfile
我似乎找不到太多关于 X-Sendfile 的文档或 PHP 的示例代码(有一些 rails 代码)。
任何人以前使用过它并且介意快速提供代码和简要说明吗?
【问题讨论】:
标签: php apache x-sendfile
X-Sendfile 是一个 HTTP 标头,所以你想要这样的东西:
header("X-Sendfile: $filename");
如果配置正确,您的网络服务器会选择它。以下是更多细节:
【讨论】:
#enable sending files from parent dirs -> XSendFileAllowAbove On 添加到我的 .htaccess 文件中,因为我的下载不在 webroot 文件夹中。
如果无法调整 Web 服务器配置,请考虑 PHP 的标准 readfile() function。它不会像 sendfile 那样快,但它会更广泛地兼容。另请注意,在执行此操作时,您还应该至少发送一个 Content-Type 标头。
【讨论】:
readfile(),您将不支持恢复或部分下载(请求范围)或客户端缓存(即,在需要时返回304 Not modified)(或者您将需要使用 PHP 代码自己处理所有这些 - 应该有一些代码 sn-ps 正是这样做的)。