前面我们了解了如何《使用PHP实现文件上传和多文件上传》。不过,在php的默认配置情况下,当上传的文件大小超出一定的限制时,我们将得到如下的错误提示信息:
Warning: POST Content-Length of 625523488 bytes exceeds the limit of 8388608 bytes in Unknown on line 0
上述错误信息的大致意思是,我们使用POST请求提交的数据大小超过了服务器的最大限制数(8388608字节=8MB)。
出现上述错误的原因是,在PHP的配置文件php.ini
中,默认存在如下配置信息(在php.ini
中,行首的分号";"表示当前行是注释,不会生效):
- ;脚本解析输入数据(类似 POST 和 GET)允许的最大时间,单位是秒。 它从接收所有数据到开始执行脚本进行测量的。
- max_input_time = 60
- ;允许客户端单个POST请求发送的最大数据
- post_max_size = 8M
- ;是否开启文件上传功能
- file_uploads = On
- ;文件上传的临时存放目录(如果不指定,使用系统默认的临时目录)
- ;upload_tmp_dir =
- ;允许单个请求上传的最大文件大小
- upload_max_filesize = 2M
- ;允许单个POST请求同时上传的最大文件数量
- max_file_uploads = 20
从上面的配置信息中我们可以看出,PHP的默认配置信息就是导致PHP文件上传时提示文件大小超出限制的「罪魁祸首」。笔者已经在上述配置信息中给出了各个指令选项对应的中文注释信息,大家可以根据自己的实际需求情况对php.ini
配置文件进行相应的修改。