Php “我怎么能?”;提示“;要将动态图像保存到磁盘的文件名?
可能重复:Php “我怎么能?”;提示“;要将动态图像保存到磁盘的文件名?,php,http,Php,Http,可能重复: My PHP生成的GUI显示动态生成的PNG图像: <img src="someScript.php?dataId=xyz&width=250&height=200" alt="Chart" /> 但是,当我的用户尝试右键单击并在IE、Firefox或Chrome中另存为时,建议的文件名是someScript.php.png。这不是唯一的,也不是很有用 如何向浏览器提示“另存为”文件名应该是什么? 浏览器总是可以随心所欲,但HTTP的内容配置开创了先例
My PHP生成的GUI显示动态生成的PNG图像:
<img src="someScript.php?dataId=xyz&width=250&height=200" alt="Chart" />
但是,当我的用户尝试右键单击并在IE、Firefox或Chrome中另存为时,建议的文件名是someScript.php.png
。这不是唯一的,也不是很有用
如何向浏览器提示“另存为”文件名应该是什么?
浏览器总是可以随心所欲,但HTTP的
内容配置开创了先例:附件;filename=
对我来说意味着可能有某种暗示文件名的方式。此HTTP头本身不合适,因为我希望内容配置
保持在。以下文件的文件名
参数:
[RFC6266]
:4.3。处置参数:“文件名”
参数“filename”和“filename*”(不区分大小写匹配)提供了有关如何构造用于存储消息负载的文件名的信息
根据处置类型,此信息可立即使用(在“附件”处置类型引起的“另存为…”交互中),或稍后使用(例如,当用户决定保存当前显示页面的内容时)。
因此:
True,但不要期望所有浏览器都能处理此问题。看见
<?php
header('Content-Type: image/png');
// output image based on $_GET['dataId']
?>
<?php
$filename = "image_" . $_GET['dataId'] . ".png";
header("Content-Type: image/png");
header("Content-Disposition: inline; filename=\"{$filename}\"");
// output image based on $_GET['dataId']
?>