Php 为什么我的图像上传程序在2900 x 2176的分辨率阈值上崩溃?

Php 为什么我的图像上传程序在2900 x 2176的分辨率阈值上崩溃?,php,file,upload,Php,File,Upload,图像大小不是这里的问题,因为我的图像是800 Kb 我的图像上传在2900 x 2176以下的任何分辨率下都能完美工作。超过这个阈值,它就不起作用了。没有上传图像。为什么会这样 我会放一些上传处理程序的代码,以防万一,但不确定它是否相关 错误是: PHP致命错误:第34行的/path/imageResizer.PHP中允许的内存大小为33554432字节(尝试分配8884字节) 指的是 if( $this->image_type == IMAGETYPE_JPEG ) { $this-&g

图像大小不是这里的问题,因为我的图像是800 Kb

我的图像上传在2900 x 2176以下的任何分辨率下都能完美工作。超过这个阈值,它就不起作用了。没有上传图像。为什么会这样

我会放一些上传处理程序的代码,以防万一,但不确定它是否相关

错误是:

PHP致命错误:第34行的/path/imageResizer.PHP中允许的内存大小为33554432字节(尝试分配8884字节)

指的是

if( $this->image_type == IMAGETYPE_JPEG ) { $this->image = imagecreatefromjpeg($filename); 
图像大小是个问题。该文件可能只有800 KB,但如果要使用它,则需要将图像扩展到内存中。所以你大概需要

2900 × 2176 × color depth × no. of channels
字节的内存,用于将每个像素存储在内存中,以便对图像执行任何操作。这可能很容易超过常规PHP内存限制。设置更高的限制,例如:

ini_set('memory_limit', '500M');
图像大小是个问题。该文件可能只有800 KB,但如果要使用它,则需要将图像扩展到内存中。所以你大概需要

2900 × 2176 × color depth × no. of channels
字节的内存,用于将每个像素存储在内存中,以便对图像执行任何操作。这可能很容易超过常规PHP内存限制。设置更高的限制,例如:

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

发生了什么样的中断?有错误被抛出吗

可能性:

  • 你的内存快用完了。我猜是imageResizer对象及其方法造成的。php当前的内存限制是多少
  • 编辑:正如@deceze所说,您可以使用此功能临时提升分配的内存:

    ini_set('memory_limit', '64MB');
    
  • imageResizer无法处理该分辨率的图像。那门课是你自己写的,还是图书馆?我对它不熟悉。检查规格

  • 发生了什么样的中断?有错误被抛出吗

    可能性:

  • 你的内存快用完了。我猜是imageResizer对象及其方法造成的。php当前的内存限制是多少
  • 编辑:正如@deceze所说,您可以使用此功能临时提升分配的内存:

    ini_set('memory_limit', '64MB');
    
  • imageResizer无法处理该分辨率的图像。那门课是你自己写的,还是图书馆?我对它不熟悉。检查规格

  • 您可能已达到内存限制。 您应该会收到一条错误消息,告诉您,我强烈建议您在开发过程中显示这些内容

    同时,您可以通过这种方式为imageReziser添加更多内存(如果您有权在服务器上使用ini_set函数)


    您可能已达到内存限制。 您应该会收到一条错误消息,告诉您,我强烈建议您在开发过程中显示这些内容

    同时,您可以通过这种方式为imageReziser添加更多内存(如果您有权在服务器上使用ini_set函数)


    它是如何崩溃的?它只是内存不足吗?有错误信息吗?嗨,“上传…”小gif一直显示,目录中没有上传的文件。RegardsHP致命错误:第34行的/path/imageResizer.php中允许的内存大小为33554432字节(尝试分配8884字节),该行引用:if($this->image\u type==IMAGETYPE\u JPEG){$this->image=imagecreatefromjpeg($filename);内存肯定是问题所在。32M的图像大小有点低。它是如何崩溃的?它只是内存不足吗?有错误消息吗?嗨,“Upload…”小gif一直显示,目录中没有上载的文件。RegardsHP致命错误:允许的内存大小33554432字节已用尽(尝试分配8884字节)在第34行的/path/imageResizer.php中,它指的是:if($this->image\u type==IMAGETYPE\u JPEG){$this->image=imagecreatefromjpeg($filename);内存肯定是个问题。32M的图像大小有点低。我编辑了我的文章。这是图像大小调整的内存问题。RegardsHi,我编辑了我的文章。这是图像大小调整的内存问题。RegardsHi,谢谢你的回答。这是你的第一个猜测。我编辑了我的文章。我如何更改为imageResizer.php分配的内存?你呢Gardsecellent。很高兴能帮上忙。我只是对ini_集合()有个问题,我需要将其放入imageResizer.php中吗?如果需要,在整个imageResizer类声明之前,还是在Resizer函数中?非常感谢。这是一个好问题。将其放在您在原始帖子中粘贴到这里的控制器脚本的顶部。我将使用64MB,并根据您想要测试的任何较大图像慢慢增加该值。如果它再次中断,请将其提高到128MB。没问题!祝你好运。嗨,谢谢你的回复。这是你的第一个猜测。我编辑了我的帖子。如何更改为imageResizer.php分配的内存?Regardseccellent。很高兴能帮上忙。我只是对ini_set()有一个问题,我需要将其放入imageResizer.php中吗?如果需要,在整个imageResizer类声明之前,还是在Resizer函数中?非常感谢。这是一个好问题。将其放在您在原始帖子中粘贴到这里的控制器脚本的顶部。我将使用64MB,并根据您想要测试的任何较大图像慢慢增加该值。如果它再次中断,请将其提高到128MB。没问题!祝你好运。