ファイルがクライアントによって正常にダウンロードされたかどうかを確認する方法
rt? ファイルがクライアントによって正常にダウンロードされたことを確認するにはどうすればよいですか?
------解決策---------
通常の状況では、出力が終了した後、ファイル全体をエクスポートします
通常は ceho と print が使用されますが、単に readfile
を使用するものもあります
このようにして、php はユーザーがダウンロードを終了したかどうかを判断する機会がなくなります
sprintf
経由でファイルの内容を出力するには、ループ内でより小さなチャンクを使用する必要があります。
springf 関数は、出力された文字数を示す数値を返します。この数値を累積してファイルの長さと比較できます
ダウンロードが完了したかどうかを判断するには
-----解決策----------
基本的には判断する方法はありません。 。 。
------解決策---------
http に基づいてそれを行う方法はありません。たとえば、サーバーはダウンロードして保存するために 2000 バイトを返します。このとき、ブラウザのキャンセル ボタンをクリックするか、ダウンロードを途中でキャンセルすると、これらのアクションはクライアント ブラウザでのみ実行され、ダウンロードが完了します。 not サーバーにステータスが通知されます。
------解決策----------------------
それは違います、ブラウザベースであるべきです クライアントダウンロードと保存の操作はブラウザによって処理されます。
独自のクライアントを作成する場合、判断は簡単です。返されるバイト数を計算し、ファイルに保存されるバイト数を数えて、それらを 1 つずつ比較するだけです。
------解決策---------
IE では ActiveX が使用でき、FireFox は使用できます。 NPAPI
-----解決策---------
一般的に、ファイルのダウンロードが完了した場合は、コントロールを介して実装する必要があります。普通のJSでは判断できません。
------解決策---------
send_file('03.bmp',1);//テストの便宜上、ブロック サイズを小さくしました <br> <br> 関数 send_file($file, $speed = 100) { <br> <br> //まず、ファイルが存在するかどうかを確認します<br> if (!is_file($file)) { <br> die("<b>404 ファイルが見つかりません!</b>"); <br> } <br> //ファイルに関する関連情報を収集します<br> $filename = ベース名($file); <br> $file_extension = strto lower(substr(strrchr($filename,"."),1)); <br> // これにより、Content-Type がファイルに適切な設定に設定されます <div class="clear"></div>