<html>
<body>
<a href="https://www.google.com.ua/images/branding/googlelogo/1x/googlelogo_color_272x92dp.png" download> download</a>
</body>
</html>
你好!有没有办法在没有.htaccess的情况下强制保存图片并出现“另存为”对话框?
<html>
<body>
<a href="https://www.google.com.ua/images/branding/googlelogo/1x/googlelogo_color_272x92dp.png" download> download</a>
</body>
</html>
你好!有没有办法在没有.htaccess的情况下强制保存图片并出现“另存为”对话框?
通过@Kaiido的评论解决:
这是浏览器(Chrome?)的功能。您的用户可以根据自己的意愿进行配置。i.stack.imgur.com/BvOD8.png,即使FileSaver.js也无能为力...
大多数基于Chrome的浏览器(在我的情况下是Opera)默认启用此选项。
源自文章:如何强制浏览器在单击时下载图像文件
由于HTML5的“下载”属性仍然只适用于兼容的浏览器。 (根据@RichardParnaby-King的答案)
您可以尝试:
var link = document.createElement('a');
link.href = 'images.jpg';
link.download = 'Download.jpg';
document.body.appendChild(link);
link.click();
最可靠的方法是在服务器端强制执行。
为了方便起见,浏览器将自动以特定方式处理特定内容。特别是,浏览器会通过内联显示来自动处理图像,而这正是您想避免的。
浏览器如何知道它是图像而不是其他内容。服务器发送一个标头来说明这一点。在 png 图像的情况下,服务器发送类似于以下内容:
Content-Type: image/png
。
诀窍在于让服务器还发送一种首选处理内容的方法。在您的情况下,您需要像这样的标头:
Content-disposition: attachment; filename=…
这将告诉浏览器下载它。
要执行此操作的简单 PHP 脚本如下:
// assuming png
$filename=@_GET['filename'];
$data=file_get_contents($filename);
header("Content-disposition: attachment; filename=$filename");
header('Content-type: image/png');
print $data;