奇怪的PHP错误,它来自哪里?笨

时间:2012-08-26 18:34:37

标签: php codeigniter

今天我正在为头像制作文件上传,一切运行正常,它调整图像大小等,但偶尔选择一个大而无效的文件时会产生此错误:

Warning: POST Content-Length of 52091839 bytes exceeds the limit of 8388608 bytes in Unknown on line 0
You did not select a file to upload.

这种情况不会偶尔发生。通常它只是在文件太大时给出正确的错误消息。

有没有人知道这个错误的来源,以及它显示的原因?

谢谢!

3 个答案:

答案 0 :(得分:5)

听起来你需要在php.ini中增加post_max_size。如果您还没有增加upload_max_filesize,则可能还需要增加它。

# php.ini
# Allow huge files:
# Post usually needs to be bigger than file upload size!
post_max_size = 256M
upload_max_filesize 128M

答案 1 :(得分:2)

将php.ini中的post_max_size更新为更大的值

upload_max_filesize设置用户可以上传的最大文件大小,而post_max_size设置可以通过表单中的POST发送的最大数据量。这可能是您尝试上传大型单个文件时有时会出现大文件错误的原因,但是当您尝试上传多个文件时会引发上述错误。

答案 2 :(得分:1)

这与上传文件时的编码方式有关。

基本上它被“视为”一个非常大的POST。

因此,您希望php.ini post_max_size大于upload_max_filesize值。

根据您使用的编码,它应该从60%增加到100%。

否则,您的最大文件大小可能为5 M,但这会被编码为8.01 M;当发生这种情况时,检查文件大小会通过,但是邮件正文大小的检查会失败。因此你的错误。