我编写了用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);
}
下载文件时是否有任何触发器或处理程序?
答案 0 :(得分:0)
它不可能。没有直接的方法来捕捉。可能会有一些工作,但它并不完美。
答案 1 :(得分:0)
你永远不会知道。即使您检测到连接状态,也不确定,因为缓存代理可能会隐藏真实的用户连接状态。所有你知道的是脚本是否已经发送了所有数据,但是如果已经收到文件则没有。
你需要实现一些客户端交互式下载器,比如java applet ......但是你会遇到其他问题。