2013-08-27 160 views
0

在我正在开发的web服务上,用户应该能够将他的数据下载到HTML文件中。该文件包含所有内容(包括图像为base64)。从网站下载临时文件

现在让用户下载它,我将不得不创建该文件并将其保存在我的网络服务器上。之后,我不得不使用cronjob将其删除,因为我无法确定下载何时完成。

还有别的办法吗?是否有可能将文件下载到我的网络服务器上没有物理存在的用户,但暂时创建?

谢谢你的帮助!

+1

不知道我已经得到了点。但为什么不通过常量的PHP脚本(收集所有内部脚本)简单地处理所需的数据,然后将内容发送给用户?这将完全符合一个下载时间的概念(不需要创建或删除它) –

+0

@AlmaDoMundo这正是我正在寻找的,但我不知道该怎么做,但答案显示了我:) –

回答

3

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

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

只需从PHP程序输出该文件的数据即可。 (即将它放在<?php?>之外或使用echo或任何其他可导致PHP输出的技术)。

您需要确保使用正确的Content-Type标题,但由于您使用的是HTML,因此这是默认设置text/html

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

header("Content-Disposition: attachment; filename='foo.html'"); 
+0

完美,谢谢:) –

1
<?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

+0

那么,最后一行'readfile(...)'做我不想做的事情(我不想要一个物理文件)。但是,如果我输出的内容而不是这条线,这也适用?那正是我想要的! –

+1

是的,而不是readfile只是回声你的字符串。 –