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

How can I deliver a PHP generated image with a specific filename?

所以我写了一个GD图像'modifier'我们会调用它,并使用imagejpeg函数,我将它输出到浏览器。我很好奇是否可能有 header 我可以传递的信息,这些信息将指示浏览器下载名称不同于 PHP 文件的名称的文件,该文件正在返回数据。

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

如果代码出于某种原因必须在这里;我很乐意 post - 但我觉得在这种情况下没有必要。

发一个Content-Dispositionheader.

显示图片:

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

下载图片:

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

我认为你可以重写 url:

URL rewriting with PHP

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

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

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