PHP生成JPEG图片在Chrome中默认存为JFIF,如何改为JPG?
解决Chrome右键下载PHP生成图片默认存为jfif的问题
问题原因
Chrome处理动态生成的图片时,若未明确指定文件名,会依据image/jpeg的MIME类型默认使用jfif作为后缀;而静态jpg文件因URL包含文件名,能被正常识别为jpg格式。
修改方案
在输出图片前添加Content-Disposition响应头,明确指定带.jpg后缀的文件名,即可让Chrome默认以jpg格式保存图片。
GD扩展修改代码
header('Content-Type: image/jpeg'); // 指定默认保存文件名,后缀为jpg header('Content-Disposition: inline; filename="custom.jpg"'); imagejpeg($source);
Imagick扩展修改代码
$img = new Imagick($source); $img->setImageFormat("jpeg"); header('Content-Type: image/'.$img->getImageFormat()); // 指定默认保存文件名,后缀为jpg header('Content-Disposition: inline; filename="custom.jpg"'); echo $img->getImageBlob();
说明
inline参数确保图片在浏览器内直接显示,而非强制下载;filename则定义了浏览器默认的保存文件名。- 你可以将
custom.jpg替换为任意自定义文件名,只要后缀保持为.jpg即可。
内容的提问来源于stack exchange,提问作者Se7enDays
相关产品推荐
相关产品推荐

