日期:2014-05-17  浏览次数:20634 次

请问post_max_size最大到底能设多大?
最近做一个项目,做资源上传的模块时,我想肯能上传较大的文件,所以我在php.ini中设置如下
max_execution_time = 600
upload_max_filesize=2048M
max_input_time = 600
memory_limit = 2048M
post_max_size = 2048M
但是表单提交后,确没有任何反应。
最后发现$_FILE为NULL,没有值!
再后来发现当设置为post_max_size = 1536M后就又可以正常上传了!
难道post_max_size有上限吗?那么最大可以设置为多大呢?(我这里好像是2G)
如果真有的话,那如果要上传很多G的东西要怎么实现呢?
请各位大哥指点一下啊!我准备这个项目做完就去找工作的……再不找过年后就没地去了啊……
大家救救我吧!

------解决方案--------------------
多大可能没有限,但是你除了设置大小 是不是对延时之类的参数也需要做相应的增加。

所以大的文件切割成几个部分来上传 到了服务器上再组合起来,这样解决各种稀奇古怪的问题。。。
------解决方案--------------------
2G用post传
32位机子限制4g以内操作
64位也就8g吧

还可以看看这段说明:
Note: PHP allows shortcuts for bit values, including K (kilo), M (mega) and G (giga). PHP will do the conversions automatically if you use any of these. Be careful not to exceed the 32 bit signed integer limit (if you’re using 32bit versions) as it will cause your script to fail.
------解决方案--------------------
真的要这么大吗?真的吗?真的吗?
------解决方案--------------------
可以设置为很大。但是,很难使用到那么大。看自己的需要,看自己服务器的承受能力。
------解决方案--------------------
虽然你的文件没有2G,可能配置文件中设置2G以上就有问题了
------解决方案--------------------
有符号长整形正数的上限是 2G,16进制表示为 0x80000000
这可能是问题的所在

另外,涉及到得几个参数应该协调

memory_limit > post_max_size >= upload_max_filesize
upload_max_filesize < max_execution_time * 平均网速

且合理
按你的配置
max_execution_time = 600
upload_max_filesize=2048M
max_input_time = 600
memory_limit = 2048M
post_max_size = 2048M

需要网速达到 3.4M字节每秒,并且需10分钟上传时间
没有一个用户会接受这一现状的