Hello All我在phpini文件中设置了ini变量。
max_execution_time 50000
memory_limit 40M
post_max_size 8M
当我尝试制作图像缩略图时,它会给我以下错误:
致命错误:内存不足(已分配30670848)(尝试分配14976个字节)
图像尺寸为700 kb。
任何人都可以帮助我吗?
答案 0 :(得分:2)
您的问题不是对imagecreatefromjpeg()的单次调用,而是您先前分配的内存。毕竟,分配失败,内存请求只有~14kB。
也许您之前在同一个脚本中创建了图像而没有使用imagedestroy()释放内存,或者您有另一个内存问题。在后一种情况下,您可以使用调试工具(例如webgrind)来查找内存占用。
答案 1 :(得分:2)
700kb图像的分辨率是多少?原始的.JPG有多大并不重要。如果它是一个非常“简单”的图像,它实际上可能是10,000 x 10,000像素。当它由PHP加载/解压缩时,这些像素将需要10k x 10k x 3 = 286兆字节(每个红色/绿色/蓝色分量值的10x平方乘以3)。
当然,你说你已经将内存限制设置为40M,但你的内存耗尽仅为29.25 meg。可能是设置中某处有覆盖,可能是在特定于站点的Web服务器.conf文件中,或者是.htaccess,它设置的下限超过40M。