做图片站的站长们应该都遇到了该问题,好点的相机照出来的高清晰大象素图片无法直接上传到站点,需要作者自己本地处理压缩后方能上传。该问题,主要原因是 PHP 的使用内存太小导致的。

解决方法 1 为:
打开 php.ini 文件,找到
         memory_limit = 128M

将 128 改大点,我本地测试修改为 256M 后,论坛上传 8M 像素为 5184 x 3456 的大图片毫无压力。当然具体情况你可以根据自己的服务器进行设置,现在的服务器内存都很大的,稍后给大点不要紧。

解决方法 2 为:(该方法不推荐,适用于虚拟主机用户)
打开文件 source/class/class_image.php ,找到该代码:
         $bg = imagecolorallocate($copy_photo, 255, 255, 255);

删除即可。
注:方法 2 也有可能因为 PHP 的使用内存太小导致无法上传,所以不推荐方法 2 。
推荐使用方法 1(提高 php 自身使用内存,才是王道) 。

faq_discuz_15

修改提高 PHP 内存后的试验效果:

faq_discuz_16