从 php 提供图像时如何防止脚本名称附加到图像文件扩展名

Posted

技术标签:

【中文标题】从 php 提供图像时如何防止脚本名称附加到图像文件扩展名【英文标题】:How to prevent script name from being appended to image file extension when serving images from php 【发布时间】:2021-01-12 01:46:32 【问题描述】:

我有一个像这样带有 img 标签的 html

<img src="loadImg.php" alt="User Image">

loadImg.php 以这种方式提供图像

...
header("Content-Type: image/jpeg");
imagejpeg($img);
imagedestroy($img);
?>

图像在 html 上提供,但是当您右键单击以保存图像时,它具有脚本名称和扩展名

在本例中为 loadImg.php.jpg

我希望文件名不包含脚本名称,最终结果类似于 profilePic.jpg

我怎样才能做到这一点?

【问题讨论】:

修复你的 imagejped 函数 【参考方案1】:

您可以使用 Content-Disposition HTTP 标头:https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Disposition

例如:

...
$file = 'user-image.jpg';
header('Content-Disposition: attachment; filename="'.basename($file).'"');
...

【讨论】:

以上是关于从 php 提供图像时如何防止脚本名称附加到图像文件扩展名的主要内容,如果未能解决你的问题,请参考以下文章

PHP wordpress - 从附加到帖子的图像自动创建Greybox图像集

如何将图像从 Android 中的 Drawable 附加到彩信?

使用 PHP 从外部公共文件夹提供 css 图像

如何使用 PHP 安全地将 JSON 数据写入文件

如何防止脚本在目录中运行?

如何使用 OpenCV 从图像中提取文本行