关于cakephp:PHP上传宽度大于2000像素的图片会导致崩溃

PHP Upload images with width greater than 2000 pixels causes crash

当用户将图像上传到我的服务器(共享服务器)时,当文件的宽度 > 2000 像素时服务器会报错。它与文件大小无关——我可以上传一个 2000 宽度的 1 mb 文件,但它仍然会崩溃。如果我上传一个 1000 像素的 1 mb 文件,它可以正常工作。

这是我得到的错误。
致命错误:允许的内存大小为 67108864 字节已用尽(试图分配 20000 字节)

我正在使用 SimpleImage 插件 (http://www.white-hat-web-design.co.uk/blog/resizing-images-with-php/) 和 CakePHP 框架。

我阅读了 PHP 文件上传大于 upload_max_filesize 和错误以及 PHP 的大文件上传错误,但都没有真正解决这个问题。

有人遇到过这个吗?有什么想法吗?


你可能正在达到内存限制...

尝试在"php.ini"

中增加 memory_limit 指令

在您的 php 脚本顶部添加以下内容,

1
ini_set('memory_limit', '128M');


将此添加到接收上传的控制器的顶部

1
ini_set('memory_limit', '256M');

根据需要更改限制值。


如果您想使用 php 上传大小大于 2000 像素的图像,请将其存储在数据库中。
创建一个表,然后使用 BLOB-Binary Lodge Object 将图像存储在其中
使用 file_get_contents 获取图像的内容,然后存储。
比服务器不会崩溃