图像尺寸不是问题,因为我的图像是800 Kb。
我的图片上传在2900 x 2176以下的任何分辨率下都可以完美运行。超过该阈值,它无法正常工作。没有上传图片。为什么会这样?
我会把上传处理程序的一些代码放在一起,以防万一,但不确定它是否相关。
错误是:
PHP致命错误:第34行的/path/imageResizer.php中允许的内存大小为33554432字节(试图分配8884字节) -
指的是......
if( $this->image_type == IMAGETYPE_JPEG ) { $this->image = imagecreatefromjpeg($filename);
答案 0 :(得分:2)
发生了什么样的突破?抛出任何错误?
的可能性:
编辑:正如@deceze所说,你可以使用这个功能暂时提高分配的内存:
ini_set('memory_limit', '64MB');
答案 1 :(得分:1)
图像尺寸是问题。该文件可能只有800 KB,但如果您想使用它,则需要将图像扩展到内存中。所以你需要大致
2900 × 2176 × color depth × no. of channels
内存字节,用于存储内存中的每个像素以对图像执行任何操作。这可能很容易超过常规的PHP内存限制。设置上限,例如:
ini_set('memory_limit', '500M');
答案 2 :(得分:0)
您可能已达到memory_limit。 您应该有一条错误消息告诉您,我强烈建议您在开发过程中显示这些消息。
与此同时,您可以通过这种方式为imageReziser添加更多内存(如果您有权在服务器上使用ini_set函数)
ini_set('memory_limit', '256M');