创建临时csv下载链接PHP

时间:2013-08-12 19:01:45

标签: php forms post csv

我有以下PHP代码来获取多维数组并将其输出到我的php页面目录中的文件。这很有效。

我正在寻找在此代码所在的页面上创建临时下载链接的解决方案,以便用户可以选择是否单击该链接,并在页面关闭时删除该文件,或者一些固定的时间。

我还没有找到一个如何在临时基础上实现这个的好例子。使用tmpfile()似乎不允许我创建一个.csv文件(它只是.tmp),我甚至不确定文件在页面加载后是否存在(足够长时间供用户下载)。

此外,许多示例都假设信息已经通过$ _POST传入。我的代码所在的页面已经是之前POST操作的目标。我不确定如何将$ results数组中的数据转换为理论上的download.php文件。

我处于一个十字路口,而我的具体问题似乎并没有重复我今天在SO上发现的任何内容。想法? (注意:空白数组只是作为每组值的分隔符)

$fp = fopen('file.csv','w'); 
foreach ($results as $arrays){
    foreach ($arrays as $fields) {
        fputcsv($fp, $fields);
    }
    $blanks = array(' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ');
    fputcsv($fp, $blanks);
}
fclose($fp);

1 个答案:

答案 0 :(得分:1)

问题似乎是,您应该在创建实际文件时创建临时文件。临时文件意味着在运行时创建和销毁。如果您尝试创建实际存在于服务器上的文件一段时间,则需要使用file_put_contents。然后,您的服务器上将有一个包含CSV内容的文件。您可以创建一个创建文件的函数,并返回您可以传递到HTML页面的位置。然后,如果文件过时,您需要创建一个清理例程来偶尔清空目录。

我希望这会让你指出正确的方向!