画像を送信する方法を知っているようですが、問題は、URL を PNG 画像のように見せたいことです。
できることがいくつかあります。まず、Web サーバーが URL 書き換えをサポートしている場合 (Apache のmod_rewrite
モジュールなど)、ユーザーがスクリプトにアクセスするように書き換えルールを使用できますhttp://example.com/generated_image.png
が、サーバーはこの URL を PHP スクリプトを直接指すように変換/書き換えます。のように/var/www/image_generator.php
。
別のオプションは、実際にはスクリプトに「 generated_image.png 」という名前を付けますが、Web サーバーに強制的に 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 」を提供する必要があります。