web-dev-qa-db-ja.com

正確なPHPアップロード制限を計算する方法

pHPでのアップロードの最大サイズは、設定の数によって異なります。これらは、Apache仮想ホストファイルに入れられたとおりです。

php_admin_flag file_uploads on

php_admin_value memory_limit 560M
php_admin_value post_max_size 530M
php_admin_value upload_max_filesize 500M

php_admin_value max_execution_time 0
php_admin_value max_input_time 0

上記の値は無視してください。ただし、約150〜200Mのアップロードを許可できます。 memory_limit、post_max_size、upload_max_filesizeには、互いに特定の比率があります。私は信じている

upload_max_filesize < post_max_size < memory_limit

しかし、正確なサイズを計算する方法がわかりません。たとえば、正確に1億のファイルをアップロードできるようにするには、これらの設定の値は何である必要がありますか?私がオンラインで収集したものから、これらの比率を決定する多くの要因がありますが、これらの要因が何であるかについての参照を見つけることができませんでした。

linuxシステムを使用しています。

1
Nova deViator

メモリ制限は、ファイルをアップロードするPOSTサイズとは無関係です。アップロードされたファイルは、PHPによって直接解析され、一時フォルダーに配置されます。

_upload_max_filesize_は100Mである必要があり、_post_max_size_は100M +マルチパートエンコーディングのオーバーヘッドである必要があります。境界でバイナリエンコードされているため、オーバーヘッドは低くなります。 101MBでも動作します。

$file = file_get_contents('path/to/uploaded/file.ext');を実行すると、スクリプトがクラッシュする可能性があります。この場合、_memory_limit_が起動するためです。

1