允许67108864字节的内存耗尽(尝试分配19200字节)


Allowed memory size of 67108864 bytes exhausted (tried to allocate 19200 bytes)

我试图上传一个10 mb大小的图像,它给了我错误:

致命错误:允许的内存大小为67108864字节耗尽(尝试到)分配19200字节)

我也试过改变成。ini文件做如下更改:

upload_max_filesize = 70M
post_max_size = 20M

但它仍然不工作…给我同样的错误…我该怎么办呢?

我的代码做错了什么,我怎么解决这个问题?

是PHP内存不足。您需要在PHP .ini中提高memory_limit选项,或者在PHP中使用ini_set(假设它已启用)。

请尝试:报错("memory_limit"、"100"),

您当前的内存限制为64M(这就是消息试图告诉您的),它远远大于10兆字节的图像。可能您在其他地方遇到了问题(低效的脚本,无限循环,无限递归?)。

不要将文件读入内存。您在脚本中使用了超过64MB的内容,这远远超过了图像的10MB,因此您可能会读取文件并将其复制并执行其他低效的操作。(我们只能猜测没有看到你的代码)

只需使用文件系统操作(如move_uploaded_file)将文件从临时位置直接复制到新的所需位置。

如果你确实需要64MB的空间,而不仅仅是上传一张图片—比如说,也许你正在对它执行复杂而昂贵的操作—然后你可以改变memory_limit INI选项。但与修复代码相比,这应该是最后的手段。:)

PHP内存不足。您不应该提高内存限制,而是应该认真考虑是否可以使脚本占用更少的内存。例如,不读取上传的文件到内存,而只使用文件系统操作。

在php.ini中使用的正确语法:

memory_limit = 128M

你也可以尝试改变你的脚本占用更少的内存

您至少应该交换"post_max_size"(整篇文章的最大值)和"upload_max_filesize"(每个实际文件的最大值)的值

相关文章: