如何交付具有特定文件名的 PHP 生成图像?

Posted

技术标签:

【中文标题】如何交付具有特定文件名的 PHP 生成图像?【英文标题】:How can I deliver a PHP generated image with a specific filename? 【发布时间】:2015-01-21 20:31:48 【问题描述】:

所以我编写了一个 GD 图像“修饰符”,我们将调用它,并使用 imagejpeg 函数将其输出到浏览器。我很好奇是否有可能我可以传递的标头信息将指示浏览器下载名称与返回数据的 php 文件名称不同的文件。

场景是我的 PHP 文件,'generate.php' 现在,将一个图像头输出并输出图像,但如果我去保存图像,默认文件名是 'generate.php'。我想交回一个动态生成的文件名。

如果由于某种原因代码是必须的;我很乐意发布它 - 但我觉得在这种情况下没有必要。

【问题讨论】:

【参考方案1】:

发送Content-Disposition 标头。

显示图像

header("Content-Disposition: Inline; filename=$filename");

下载图片

header("Content-Disposition: Attachment; filename=$filename");

【讨论】:

成功了。谢谢你。仅适用于偶然发现此问题的其他任何人; 'inline' 配置强制文件命名; “附件”配置强制命名 - 并 - 开始下载。干杯@AbraCadaver【参考方案2】:

我认为你可以重写网址:

URL rewriting with PHP

您可以将这样的简单规则添加到 .htaccess 文件中:

RewriteEngine on RewriteRule ^/images/(.*)$ /generate.php?imagename=$1

当您调用图像时,您将使用<img src="/images/image.png" />,但由于您的规则,服务器而不是搜索该 url 将执行您的 php 脚本。

【讨论】:

好主意,但与这个问题无关。

以上是关于如何交付具有特定文件名的 PHP 生成图像?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用GD在php中特定区域的图像上放置一些文本

如何使用 cpack/cmake 生成具有特定文件组织的 nuget 包?

如何使用java将图像上传到cloudinary中具有唯一public_id的特定文件夹?

如何使用此 GeoJson 文件从特定国家/地区生成随机点(坐标)?

在特定文件夹 php Cloudinary 中上传图像

如何在通过php存储在文件夹中时更改图像名称