首先请打开此链接http://i.imgur.com/vrprpkw.gif 该链接包含图像,如果您打开该链接,图像将显示在浏览器
上此链接来自facebook,https://www.facebook.com/588117287959322/,它也包含图片,
但如果您打开它,图像将不会出现,但会显示浏览器中的下载对话框。 如何创造那样的?因此用户无需右键单击图像即可保存图像,只需单击链接,下载对话框将自动出现在屏幕上。
由于
答案 0 :(得分:0)
它取决于服务器发送的MIME Content-Type
标头。如果Content-Type
标头包含浏览器识别为支持的文件类型的值(例如image/png
表示所有浏览器都支持的PNG格式的图像文件),则浏览器将尝试显示图像
但是,如果需要,您还可以强制浏览器显示“下载对话框”,方法是将服务器响应分类为“附件” - 即文件不是文档的组成部分。您可以使用Content-Disposition
标头执行此操作。例如,在PHP中你会说:
header("Content-Disposition: attachment;filename=" . $filename);
“filename”属性是可选的,用于向浏览器建议下载文件应保存为的名称。如果URL本身不像文件那样结束,这一点很重要。例如,imgur.com URL看起来像一个文件,因此不需要“filename”属性,而facebook.com URL没有和没有“filename”属性,浏览器将很难找到一个有用的文件名。
这是一个完整的代码片段 - 假设您希望用户下载/var/www/image.jpg中的文件,您可以写一下:
<?php
header("Content-Type: image/jpeg");
header("Content-Disposition: attachment;filename=image.jpg");
echo file_get_contents("/var/www/image.jpg");