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 に答える