1

我编写了在 PHP 中创建 CSV 文件并在本地下载的代码。

是否可以知道用户是否下载了文件?或者如果用户取消了下载?

我的测试代码放在下面用于创建和下载文件:

header("Content-type: text/csv");
header("Content-Disposition: attachment; filename=invoies.csv");
header("Pragma: no-cache");
header("Expires: 0");

$array = array(
    array("data11", "data12", "data13"),
    array("data21", "data22", "data23"),
    array("data31", "data32", "data23"),
);
outputCSV($exported_invoices_arr);


function outputCSV($data) {
    $outstream = fopen("php://output", "w");

    function __outputCSV(&$vals, $key, $filehandler) {
        fputcsv($filehandler, $vals); // add parameters if you want
    }

    array_walk($data, "__outputCSV", $outstream);
    fclose($outstream);
}

他们在下载文件时是否有任何触发器或处理程序?

4

2 回答 2

0

你永远不会知道的。即使您检测到连接状态,您也不确定,因为缓存代理可以隐藏真实的用户连接状态。您所知道的是脚本是否已发送所有数据,但不是已收到文件。

您需要实现一些客户端交互式下载器,例如 java 小程序……但是您会遇到其他问题。

于 2013-03-13T12:52:10.910 回答
0

这是不可能的。没有直接的方法可以捕获。可能有一些解决方法,但它并不完美。

于 2013-03-13T12:47:55.690 回答