允许的内存大小为67108864字节耗尽(试图分配19200字节)

时间:2011-09-10 20:48:41

标签: php upload ini

我正在尝试上传10 MB大小的图片,它给了我错误:

  

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

我还尝试通过更改为:

来更改为.ini文件
upload_max_filesize = 70M
post_max_size = 20M

但它仍然没有用......并且给了我同样的错误......它让我很沮丧我接下来能做些什么......

我的代码出了什么问题,我该如何解决这个问题?

7 个答案:

答案 0 :(得分:9)

PHP正在耗尽内存。您需要在php.ini中使用memory_limit选项,或在PHP中使用ini_set(假设它已启用)。

答案 1 :(得分:3)

请尝试:     的ini_set( “memory_limit的”, “100M”);

答案 2 :(得分:3)

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

答案 3 :(得分:3)

请勿将文件读入内存。您在脚本中使用的超过64MB,远远超过图像的10MB,因此您可能正在阅读该文件并将其复制并执行其他低效的操作。 (我们可以在不看你的代码的情况下猜测。)

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

如果您出于某种原因确实需要64MB而不仅仅是上传图像 - 比如说,您可能正在执行复杂且昂贵的操作 - 那么您可以更改memory_limit INI选项。但与修复代码相比,这应该是最后的手段。 :)

答案 4 :(得分:0)

你的PHP内存不足。你应该认真思考是否可以为你的脚本附魔以减少内存,而不是提高内存限制。例如,不是将上传的文件读取到内存,而是仅使用文件系统操作。

答案 5 :(得分:0)

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

memory_limit = 128M

您还可以尝试更改脚本以减少内存

答案 6 :(得分:0)

您至少应该交换“post_max_size”(整个帖子的最大值)和“upload_max_filesize”(每个实际文件的最大值)所拥有的值