听起来您知道如何发送图像,您的问题是您希望 URL 看起来像 PNG 图像。
您可以做几件事。首先,如果您的 Web 服务器支持 URL 重写(如 Apache 的mod_rewrite
模块),您可以使用重写规则,以便用户访问脚本,http://example.com/generated_image.png
但您的服务器将翻译/重写此 URL 以直接指向您的 PHP 脚本,所以有些东西喜欢/var/www/image_generator.php
。
另一种选择是将您的脚本实际命名为“generated_image.png”,但强制您的网络服务器将其视为 PHP 脚本。例如,在 Apache 中,您可以尝试以下操作:
<Location /generated_image.png>
ForceType application/x-httpd-php
</Location>
最后一点,如果您实际上并不担心 URL,而是担心用户决定将其保存到磁盘时使用的文件名,您可以简单地Content-Disposition
在响应中使用 HTTP 标头。在 PHP 中,它看起来像这样:
<?php
header("Content-Disposition: inline; filename="generated_image.png");
?>
这样,无论 URL 是什么,如果用户通过他们的 Web 浏览器保存图像,Web 浏览器应该提供“generated_image.png”作为默认文件名。