如何计算确切的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 

然而,我不知道如何计算确切的大小。 例如,为了准确地达到100M的file upload,这些设置必须是什么值? 从我在网上收集的信息来看,确定这些比率的因素有很多,但我找不到任何参考文献,这些因素是什么。

我正在使用Linux系统。

内存限制与您上传文件的POST大小无关。 上传的文件将被PHP直接parsing并放入一个临时文件夹。

upload_max_filesize必须是100M,你的post_max_size必须是100M +多部分编码的开销。 开销很低,因为它是用边界进行二进制编码的。 即使有101MB,它会工作。

现在,如果你做$file = file_get_contents('path/to/uploaded/file.ext'); ,它可能仍然会崩溃$file = file_get_contents('path/to/uploaded/file.ext'); 因为在这种情况下, memory_limit将会启动。