Php 干涉图像编码文件扩展名

Php 干涉图像编码文件扩展名,php,laravel,intervention,Php,Laravel,Intervention,我正在尝试更改所有上传到png格式的图像。我正在使用Laravel的包,并调用encode函数。图像文件未更改为.png 这是我的上传脚本:所有内容都在上传、调整大小,似乎都在压缩。只是不转换为png文件 我在这一部分是否做错了什么: Image::make($classifiedImg)->encode('png', 65)->resize(760, null, function ($c)... 还是这导致了问题: getClientOriginalExtension(); 谢

我正在尝试更改所有上传到png格式的图像。我正在使用Laravel的包,并调用encode函数。图像文件未更改为.png

这是我的上传脚本:所有内容都在上传、调整大小,似乎都在压缩。只是不转换为png文件

我在这一部分是否做错了什么:

Image::make($classifiedImg)->encode('png', 65)->resize(760, null, function ($c)...
还是这导致了问题:

getClientOriginalExtension();

谢谢你,巴古斯塔,你是对的。这就是问题的根源

getClientOriginalExtension();
获取要转换的扩展名。我需要将扩展名添加到文件名中

更改此行:

$filename = 'listing'.'-'.uniqid().'.'.$classifiedImg->getClientOriginalExtension()
为此:

$filename = 'listing' . '-' . uniqid() . '.png';

是的,或者这是否导致问题部分为真,请尝试在传入代码后检查您的图像是否为有效的png。我想这只是扩展误导了你。您可以用来测试仅供参考。@BagusTesa感谢您抽出时间提供帮助。你是说我需要检查MIME类型以便将所有图像更改为png吗?不,首先要做的是,检查输出是否确实是png,并强制文件名的扩展名为png,而不是使用getClientOriginalExtension。@BagusTesa好的,明白了。我上传的图像是一个.jpg。当使用您提供的站点进行检查时,它会返回以下内容:文件类型:JPEG图像数据,JFIF标准1.01,注释:创建者:gd JPEG v1.0使用IJG JPEG v90,质量=90 MIME类型:图像/JPEG建议的文件扩展名:JPEG jpe我还尝试删除png格式的质量,因为我读到该质量不会影响png。还尝试了png到jpg。还是不行。等等,你在那页上测试的那个,上传的文件。。?不是传递到->encode'png'的结果。。?位于公共路径“/images/users/listing images/”上的一个$文件名。。
$filename = 'listing' . '-' . uniqid() . '.png';