2

、ファイルのアップロードをキャンセルするために使用this => set_time_limit ()でき ます。Die()

つまり、ユーザーがボタンをクリックすると、set_time_limit ()機能が実行されます。

アップロードを停止しますか?

4

4 に答える 4

4

これを実現するには、Javascriptソリューションを使用することをお勧めします。もちろん、それはクライアントサイドなので、人々はそれを回避することができます。セキュリティ上の問題である場合は、Javascriptに依存しないでください。Apacheを実行している場合は、 mod_reqtimeoutを試すことができますが、これはリクエストヘッダー用であるため、ファイルのアップロードがこれの一部になるかどうかは完全にはわかりません。

編集:より有望に見えるApacheTimeoutディレクティブKeepAliveTimeoutもあります。

Edit2:私はこれに偶然出くわしました。これはまさにあなたが探しているもののようです(PHP> = 5.4と仮定)。また、コメントの1つから、以前のバージョンではこれを使用できます。

于 2012-06-13T01:59:41.867 に答える
2

それはしません

Php自体は、ファイルのアップロードの進行には関与しません。Webサーバーがスクリプトの実行を開始すると、ファイルはすでにアップロードされています

于 2012-06-13T01:52:51.747 に答える
1

Afaik、PHPがアップロードを「キャンセル」する方法はありません。PHPにアップロードが通知される限り、アップロードプロセスは完了です。

ただし、これは単なる推測ですが、APCを使用してプログレスバーを作成する方法があるため(アップロードプロセスを確認)、停止できる場合があります。しかし、チェック(つまり、プログレスバー)が現在アップロードされているファイルと対話できない別のphpプロセスで実行されるため、私は本当に確信が持てません。

于 2012-06-13T01:58:56.520 に答える
1

リクエストとレスポンスの動作方法により、アップロードのキャンセルを含め、データを使用できるようになる前に、データが配信されるのを常に待つ必要があります。@Mikeがタイムアウトを設定すると言ったように、それは実際にはアップロードをキャンセルしません。これは基本的に、このユーザーが何かをするのに時間がかかることをphpに伝えているので、もう待っていないことを伝えます。このようなことを行うには、ajaxを使用する方がよいでしょう。

于 2012-06-13T02:12:51.033 に答える