【问题标题】:PHP GD .ico handlingPHP GD .ico 处理
【发布时间】:2017-03-27 03:37:11
【问题描述】:

我的 PHP webapp 的用户可以上传 PNG 和 JPEG 图像。上传算法如下:

  1. 通过文件名解析检查扩展名
  2. 通过 getimagesize() 检查扩展
  3. 通过 imagecreatefrompng()/imagepng() (imagecreatefromjpeg()/imagejpeg()) 重新创建图像
  4. 重命名图片
  5. 保存到文件系统

图像娱乐用于安全性。一切正常。但现在我需要这个算法来处理 .ico 文件。似乎GD不适用于.ico(没有像imagecreatefromico()这样的函数),所以我不知道如何实现我的算法的第3步。

感谢您的任何帮助或建议。

【问题讨论】:

  • 你见过this吗?
  • @JulienLopez 不确定是我的情况。我不改变类型。我只需要重新创建文件,确保没有恶意代码。

标签: php file-upload gd


【解决方案1】:

请参阅 https://github.com/lordelph/icofileloader 了解可以将 .ico 文件加载到 GD 图像中的 composer-installable 类。

例如:

$loader = new Elphin\IcoFileLoader\IcoFileService;
$im = $loader->extractIcon('/path/to/icon.ico', 32, 32);

有关从图标文件中分析和提取图像的其他方法,请参阅文档。

【讨论】:

  • 谢谢。你能告诉我,是否可以将 $im 保存为 .ico 文件,因为 GD 没有 imageico() 或 imagecreatefromico() 函数?
  • 你应该可以在 packagist 上找到几个,例如packagist.org/packages/chrisjean/php-ico
  • 非常感谢,稍后再试!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-02-22
  • 2014-11-10
  • 1970-01-01
  • 2016-03-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多