我想为我的网站创建壁纸页面。我希望人们可以直接点击下载按钮下载,而不是浏览器中的图像视图,用户右键单击,然后另存为图像。有没有java脚本的解决方案?
答案 0 :(得分:2)
您需要强制服务器发送的图像的内容类型。没有办法做这个客户端。
Content-Type: application/octet-stream
Content-Disposition: attachment;filename=myimage.png
答案 1 :(得分:2)
您可以通过PHP(或其他服务器端语言)脚本强制下载,如下所示:
$file = $_GET['file'];
header('Content-Description: File Transfer');
header("Content-type: application/octet-stream");//notice this content-type, it will force a download since browsers think that's what they should do with .exe files
header("Content-disposition: attachment; filename= ".$file."");
readfile($file);
然后在您的JavaScript代码中,您可以将用户填充到此脚本,并使用JavaScript填充GET变量file
。
$('a.download_link').on('click', function (event) {
event.preventDefault();//prevent the normal click action from occuring
window.location = '/path/to/server-side.php?file=' + encodeURIComponent(this.href);
});
这将为具有click
类的任何链接添加.download_link
事件处理程序,以将浏览器定向到上面的PHP脚本以强制下载。
答案 2 :(得分:-1)
只需使用您在单击按钮时设置源属性的隐藏iframe。
<input class="download" href="http://site.com/imageHandler.ashx" value="Download"/>
$("input.download").click(function() { $("iframeID").attr("src", $(this).attr("href")); });
您还需要使用自定义图像处理程序设置内容类型(您正在使用的服务器端语言)