【问题标题】:PHP Upload images with width greater than 2000 pixels causes crashPHP上传宽度大于2000像素的图片会导致崩溃
【发布时间】:2011-12-03 17:14:05
【问题描述】:

当用户将图像上传到我的服务器(共享服务器)时,当文件的宽度 > 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 File Upload greater than upload_max_filesize and errorLarge File Upload Errors with PHP,但都没有真正解决这个问题。

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

【问题讨论】:

  • “服务器崩溃”是什么意思?
  • 服务器错误日志有提示吗?
  • 检查最大内存问题...尝试将内存限制更改为 128M 并重试...正如@Jim 所说 =P
  • 绝对是内存问题。但是,我不知道为什么.. 好像我有很多内存?这是错误。 Fatal error: Allowed memory size of 67108864 bytes exhausted (tried to allocate 20000 bytes)

标签: php cakephp file-upload upload


【解决方案1】:

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

尝试在“php.ini”中增加memory_limit 指令


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

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

【讨论】:

  • 我收到了这个错误(抱歉我之前没有提到这个)。致命错误:允许的内存大小为 67108864 字节已用尽(试图分配 20000 字节)——我也在共享服务器上。所以,我猜我将无法更改 memory_limit。
  • 你也可以使用php“init_set”方法...编辑答案
【解决方案2】:

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

【讨论】:

    【解决方案3】:

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

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

    根据需要更改限制值。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-07-05
      • 2018-10-21
      • 2016-10-07
      • 2016-01-25
      • 2012-06-28
      • 2015-05-24
      • 1970-01-01
      相关资源
      最近更新 更多