在下载之前将字节预置到文件


Prepend bytes to file before download

是否可以在

请求下载文件时在文件中附加一些字节,而无需使用 PHP 将文件写入服务器上的临时位置。

例如,考虑一个文件somefile.txt其内容为"原始文本"。如果请求下载文件,则下载的文件具有"prependedtext_originaltext"内容

我希望在不创建服务器上文件的临时副本的情况下实现这一点,因为该文件可能非常大,如果大量用户请求该文件,服务器空间会迅速填满。

谢谢

当然

有可能。

现在,这取决于您提供文件的方式。如果你直接链接到文件,你必须在你的 Web 服务器中创建一个重写规则,这会将请求的文件传递给你的 PHP 脚本[1]。然后,脚本将输出您的"前置文本"以及文件的内容。不要忘记添加适当的HTTP标头[2]!

如果您已经通过 PHP 脚本提供文件,那么您需要在输出文件内容之前输出"前置文本"。

言论:

[1] 要对大文件实现内存效率,请使用readfile()

[2] 对于文本文件,最重要的标头是Content-type: text/plain(另请参阅header()readfile()的文档)