为什么我会得到任何想法......
Fatal error: Allowed memory size of 33554432 bytes exhausted (tried to
分配9792个字节) /home/frich/public_html/creation/systemc/sMain/upload_image.php 在第77行
在以下一行
$oldImage = imagecreatefromjpeg($img);
php从HTML表单中抓取图像并调整其大小。
如果它是一个小文件,可以正常工作。即几百KB
尝试使用更大的文件,因为我希望最多可达4mb。 我得到错误的图像是ca. 2MB
提前致谢
答案 0 :(得分:10)
您收到错误
""""""""""""""""""""""""
Fatal error: Allowed memory size of 33554432 bytes exhausted (tried to
allocate 9792 bytes) in /home/frich/public_html/creation/systemc/sMain/upload_image.php on line 77
""""""""""""""""""""""""
它显示您正在使用共享主机,因为您的服务器memory_limit是32 MB
如上所述,您需要通过“Pekka”和“MartyIX”增加内存限制
但是你如何做到这一点有三种方法。
他们会将其增加到最多48MB,这是任何托管公司对剪切托管帐户的限制。
写有“memory_limit = 100M和max_memory = 100M”
您可以将100M更改为您想要的任何大小,但可能会有限制,以便它不会使用服务器的额外资源,否则您的帐户可能会被您的托管公司暂停
限制:此选项可能无法在每个主机上正常运行,因为有些时候管理员可能会阻止此代码,因此可能会在LIMIT中使用服务器资源。
写在其中“php_value memory_limit 32M”
或
默认情况下,它可以在您的托管网络目录中找到,然后您可以先下载它,因为它也有其他设置。 下载它用记事本打开它并写“php_value memory_limit 32M”
和
“ini_set('memory_limit','32M');” (我还没有测试过,可能会正常工作)
谢谢和问候........
答案 1 :(得分:7)
您尝试处理的图像太大,无法满足脚本的32 MB内存限制。
调整图片大小至少占用
(width in pixels) x (height in pixels) x 3 (or 4)
字节(红色/绿色/蓝色各1个字节,透明度可能增加一个字节)
您需要增加服务器上的memory_limit
设置,或要求管理员这样做。
32MB是一个相当不错的常见价值 - 如果你在共享主机上,你可能会失去运气。
或者,如果可能在您的服务器上,请使用ImageMagick,其内存消耗不计入memory_limit
。
答案 2 :(得分:0)
根据您的php配置,您可以使用ini_set()增加脚本的内存限制;例如,
ini_set('memory_limit','16M');
我已经在很多场合使用过这个图像处理任务,尽管4mb文件对于Web服务器来说是一个非常重的负载。