0

我有以下 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);
4

1 回答 1

1

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

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

于 2013-08-12T19:12:31.320 回答