我在PHP中遇到一个常见问题:当文件太大时,我的$ _FILES数组为空 .
php.ini:
max_execution_time = 300000
max_input_time = 600000000
memory_limit = 5100MB
post_max_size = 5000MB
upload_max_filesize = 5000MB
文件 :
Trouve.tar : 910Mo
配置值很大,但我想确保脚本有时间和内存来进行上传 .
所以,授权大小比文件大小大,但我有比其他人更多的错误(例如problem with uploading the images with php file upload例如)
我错过了一些配置设置吗?
4 回答
问题是 post_max_size 与 upload_max_filesize 的大小相同,这将导致$ _FILES数组(和$ _POST)为空 . 如果你在post_max_size上限,$ _FILES数组将不再为空 .
编辑:不知道为什么负面投票 . 虽然它可能不适用于这种情况,但值得一提 . 这正是php.net所说的:http://www.php.net/manual/en/ini.core.php#ini.post-max-size .
而不是MB使用M.
检查php.ini设置中的
upload_limit
.在您的html表单标记中,不要忘记输入:
enctype="multipart/form-data"
除了php.ini配置之外,还要检查Web服务器限制 .
例如,如果您正在使用Apache,则可能必须增加LimitRequestBody,如果您使用的是nginx,则可能需要增加client_max_body_size .
当HTTP请求大于Web服务器接受的限制时,它将返回状态为:413 Request Entity Too Large的HTTP响应 .