0

我在 ubuntu 上使用 Lampp,我想更改最大上传大小。

opt/lampp/etc 中的 php.ini 有以下设置:

post_max_size = 5M
upload_max_filesize = 8M

但是当我尝试上传 2.1 mo 文件时,我收到以下错误消息:

Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 7448 bytes)

请问有什么想法吗?

4

4 回答 4

2

这不是因为 post_max_size 或 upload_max_filesize,而是因为内存限制
试试这个

ini_set("memory_limit","256M");

134217728 字节 = 128MB

或来自 php.ini

memory_limit = 256M  

但总的来说,当你得到这个错误时,它仅仅意味着你的代码还没有效率。因为您正在耗尽分配的内存来运行这一个 PHP 页面。你知道它已经是 128 MB。
如果只是简单地增加内存限制,可以同时打开的并发 PHP 进程会大大减少。
试想一下海量的多用户环境,当这个PHP页面被多个用户同时打开时,服务器能不能用服务器的物理内存来处理?

简而言之,您可以在这里分享您的代码,以便我们都可以帮助您提高效率吗?

于 2013-07-05T19:24:05.050 回答
1

您是否重新启动了Apache

你试过PHP方法吗?

您是否尝试过htaccess方法?

PHP方法

ini_set('upload_max_size', '64M');
ini_set('post_max_size', '64M');

Htaccess 方法

尝试将其放入您的 .htaccess 文件中

php_value upload_max_filesize 64M
php_value post_max_size 64M
于 2013-07-05T19:22:48.917 回答
0

此错误与最大上传文件大小无关,它与 PHP 解释器试图分配比memory_limit标志允许的更多内存有关。

增加它在 PHP.INI 中的值,重新启动服务器,检查新值是否正在使用phpinfo(),看看你的脚本是否有效。

于 2013-07-05T19:24:17.543 回答
0

您收到的错误与文件上传大小无关。PHP 在执行脚本期间内存不足 (RAM)。

您需要根据 PHP ini 设置增加内存限制:http ://www.php.net/manual/en/ini.core.php#ini.memory-limit 。

于 2013-07-05T19:24:29.877 回答