、ファイルのアップロードをキャンセルするために使用this => set_time_limit ()
でき ます。Die()
つまり、ユーザーがボタンをクリックすると、set_time_limit ()
機能が実行されます。
アップロードを停止しますか?
、ファイルのアップロードをキャンセルするために使用this => set_time_limit ()
でき ます。Die()
つまり、ユーザーがボタンをクリックすると、set_time_limit ()
機能が実行されます。
アップロードを停止しますか?
これを実現するには、Javascriptソリューションを使用することをお勧めします。もちろん、それはクライアントサイドなので、人々はそれを回避することができます。セキュリティ上の問題である場合は、Javascriptに依存しないでください。Apacheを実行している場合は、 mod_reqtimeoutを試すことができますが、これはリクエストヘッダー用であるため、ファイルのアップロードがこれの一部になるかどうかは完全にはわかりません。
編集:より有望に見えるApacheTimeoutディレクティブとKeepAliveTimeoutもあります。
Edit2:私はこれに偶然出くわしました。これはまさにあなたが探しているもののようです(PHP> = 5.4と仮定)。また、コメントの1つから、以前のバージョンではこれを使用できます。
それはしません
Php自体は、ファイルのアップロードの進行には関与しません。Webサーバーがスクリプトの実行を開始すると、ファイルはすでにアップロードされています
Afaik、PHPがアップロードを「キャンセル」する方法はありません。PHPにアップロードが通知される限り、アップロードプロセスは完了です。
ただし、これは単なる推測ですが、APCを使用してプログレスバーを作成する方法があるため(アップロードプロセスを確認)、停止できる場合があります。しかし、チェック(つまり、プログレスバー)が現在アップロードされているファイルと対話できない別のphpプロセスで実行されるため、私は本当に確信が持てません。
リクエストとレスポンスの動作方法により、アップロードのキャンセルを含め、データを使用できるようになる前に、データが配信されるのを常に待つ必要があります。@Mikeがタイムアウトを設定すると言ったように、それは実際にはアップロードをキャンセルしません。これは基本的に、このユーザーが何かをするのに時間がかかることをphpに伝えているので、もう待っていないことを伝えます。このようなことを行うには、ajaxを使用する方がよいでしょう。