我目前是通过一个php文件输出图片来显示图片并隐藏src代码。但是,当我右键单击显示的图像并向下滚动到“另存为”时,它会提示我下载php文件而不是实际的图像(显然因为它指向该src)。
我该怎么做才能下载实际的图像而不是displayImage.php?
它不会提示你下载 PHP 文件,它只是使用该文件名,因为这是从中获取图像数据的文件名。如果您手动输入有效的图像文件名并尝试打开保存的内容,则应仍然是有效的图像。
您还可以通过在 PHP 文件中包含文件名来使用 Content-Disposition:
标头给它一个明智的名称,例如:
$filename = 'image.jpg';
header('Content-Disposition: inline; filename="'.$filename.'"');
// Don't forget the Content-Type as well...
// Output image here
然而,这取决于浏览器是否明智地处理,但并非所有浏览器都能做到 :-(
下载进度
是无关紧要的,因为您正在执行 右键单击 -> 另存为...
所以图像已经被下载,您实际上只是将其从浏览器临时/缓存目录移动到任何您保存它的地方。 - DaveRandomheader("Content-Type: image/png");
header('Content-Disposition: inline; filename="some.png"');
在图像生成器脚本中发送正确的内容类型:
header('Content-type: image/jpg');
如果您想要在 PHP 脚本输出图像时拥有 .jpg 扩展名,则需要进行 htaccess 或 httpd.conf 重写,您可以将 .jpg 请求重写为您的 php 图像生成器脚本。
请参见 mod_rewrite http://httpd.apache.org/docs/current/mod/mod_rewrite.html
Content-Disposition
。 - Polynomial