使临时文件可从网站下载


Make temporary Files downloadable from Website

在我正在开发的Web服务上,用户应该能够在HTML文件中下载他的数据。这个文件包含所有内容(包括base64的图像)。

现在,为了让用户下载这个,我必须创建文件并将其保存在我的Web服务器上。之后,我不得不使用cronjob删除它,因为我不知道下载何时完成。

还有别的办法吗?是否可以将一个文件下载给用户,该文件在我的网络服务器上并不存在,但以某种方式临时创建?

谢谢你的帮助!

就WWW而言,没有文件这样的东西。只有HTTP资源。

服务器可能会从文件中获取数据,但可能不会。

只需从PHP程序中输出文件的数据。(即,通过将其置于<?php?>之外,或使用echo或任何其他导致PHP输出某些内容的技术)。

您需要确保使用正确的Content-Type标头,但由于您使用的是HTML,因此默认值为text/html

如果希望提示用户将下载保存到某个位置,而不是在浏览器窗口中呈现下载的HTML,则可以添加Content-Disposition标头。

header("Content-Disposition: attachment; filename='foo.html'");
<?php
// We'll be outputting a PDF
header('Content-type: application/pdf');
// It will be called downloaded.pdf
header('Content-Disposition: attachment; filename="downloaded.pdf"');
// The PDF source is in original.pdf
readfile('original.pdf');
?>

发件人:http://php.net/manual/en/function.header.php