有些图片可能人为的修改了后缀,导致imagecreatefrompng报错,PS也打不开这种图

报错

imagecreatefrompng(): gd-png: fatal libpng error: Read Error: truncated data

PS甚至也打不开

各位有什么好的解决方案吗?

gd
让PHP再次伟大
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
讨论数量: 6

尝试过这个方法么?

imagecreatefromstring(file_get_contents($this->FilePath));

1年前 评论

试下这个 \Illuminate\Filesystem\Filesystem guessExtension()

file

1年前 评论

mime_content_type('filename.jpg');

试试这个

1年前 评论

我建议你直接解决这样的用户就行了

if (false === imagecreatefrompng()) {
    throw new \Exception('请上传合法的图片');
}
1年前 评论
  1. 获取 MIME TYPE,根据获取到的值选择合适的创建图片方法
  2. 不是图片给前台报错
1年前 评论

gd 可以用 getimagesize 获取图片信息,再配合 image_type_to_extension 获取后缀

1年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!