【问题标题】:phpimageworkshop : jpg files which do not workphpimageworkshop:无法使用的 jpg 文件
【发布时间】:2014-01-16 00:57:11
【问题描述】:

我正在使用 phpimageworkshop 调整图像大小,但遇到以下问题。根据我的 jpg 文件,库工作或不工作。为了测试它,我有以下代码:

use PHPImageWorkshop\ImageWorkshop; /*http://phpimageworkshop.com/*/
require_once('lib/PHPImageWorkshop/ImageWorkshop.php'); 

$layer1 = ImageWorkshop::initFromPath('uploads/img1.jpg');
echo $layer1->getWidth();

$layer2 = ImageWorkshop::initFromPath('uploads/img2.jpg');
echo $layer2->getWidth();

它适用于文件 img1.jpg,但它不适用于 img2.jpg,回显不返回任何内容。您可以使用以下文件进行测试: http://francois-deneuville.fr/stackoverflow/ 你知道为什么吗?

【问题讨论】:

  • 可能是图片太大了。该库是否没有某种形式的错误处理?
  • 你有error reporting turned on吗?第二张图片比第一张大很多;如果您达到 PHP 内存限制,我不会感到惊讶。检查您的服务器错误日志。您的第二张图片是 4,288x2,848 像素;在保守的每像素 16 位的情况下,它在加载时需要大约 24MB 的内存来保存它。
  • 不,我没有打开错误报告。我去看看
  • 另外,暂时打电话给phpinfo(),看看它说你的memory_limit是什么,对于初学者。但是,基本上,打开错误报告,因为您可能会遇到您没有看到的错误。而且你也需要更多的内存来调整大小;您需要将原始图像和调整大小的图像同时保存在内存中,至少是短暂的。
  • 我已经运行了phpinfo,我的内存限制是32M。我将打开错误报告以了解更多信息。

标签: php image jpeg


【解决方案1】:

您的第二张图片比第一张大得多。

验证您的服务器是否可以处理最大 2mb 的上传。 为此,请在您的脚本中调用:

<?=phpinfo();?>

向下滚动到 *upload_max_filesize* 并确认您接受的最大文件大小大于或等于 2mb。

要调整上传文件的大小,请转到 php.ini 文件 - 在 UNIX 上,可以在 /etc/php5/apache2 上找到该文件。

向下滚动并找到:

; Maximum allowed size for uploaded files.
;http://php.net/upload-max-filesize       
upload_max_filesize = 2M   

如果确实是最大文件大小问题,这应该可以解决您的问题。

【讨论】:

  • 做一个实验,设置你的最大文件大小为 2mb。将其设置为 32mb 不是上传的合适最大文件大小 - 尤其是图像。检查您的文件上传是否可以正常工作。
  • 为了解决这个问题,我已将 memory_limit 的值更改为“memory_limit = 128M”。它有效。
【解决方案2】:

为了解决这个问题,我已将 memory_limit 的值更改为“memory_limit = 128M”。该值已在 php.ini 文件中进行了调整。

确保你已经通过午餐修改了好的 php.ini 文件 &lt;? phpinfo();?&gt; 并向下滚动到“memory_limit”

【讨论】:

    猜你喜欢
    • 2019-10-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-11
    相关资源
    最近更新 更多