假设我们有一个pdf链接" http://manuals.info.apple.com/en/iphone_user_guide.pdf "(仅举例来说,让你知道我的服务器上没有该文件,我只有链接).. .现在我必须在我的网站上提供一个按钮来下载文件.
我尝试了各种各样的东西,如window.open,href等方法,但它打开其他窗口上的链接.我知道这是因为现在所有浏览器都带有一个adobe插件,可以在另一个窗口中打开它,但仍然没有任何方式我给用户提供下载选项而不是通过客户端脚本打开它.
请帮忙..谢谢
laj*_*rre 34
这是一个Javascript解决方案(对于像我这样寻找标题答案的人):
function SaveToDisk(fileURL, fileName) {
// for non-IE
if (!window.ActiveXObject) {
var save = document.createElement('a');
save.href = fileURL;
save.target = '_blank';
save.download = fileName || 'unknown';
var evt = new MouseEvent('click', {
'view': window,
'bubbles': true,
'cancelable': false
});
save.dispatchEvent(evt);
(window.URL || window.webkitURL).revokeObjectURL(save.href);
}
// for IE < 11
else if ( !! window.ActiveXObject && document.execCommand) {
var _window = window.open(fileURL, '_blank');
_window.document.close();
_window.document.execCommand('SaveAs', true, fileName || fileURL)
_window.close();
}
}
Run Code Online (Sandbox Code Playgroud)
来源:http://muaz-khan.blogspot.fr/2012/10/save-files-on-disk-using-javascript-or.html
不幸的是,我使用的是IE11,它不接受新的MouseEvent.在这种情况下我使用以下内容:
//...
try {
var evt = new MouseEvent(...);
} catch (e) {
window.open(fileURL, fileName);
}
//...
Run Code Online (Sandbox Code Playgroud)
sar*_*ink 25
使用HTML5"下载"属性
<a href="iphone_user_guide.pdf" download="iPhone User's Guide.PDF">click me</a>
Run Code Online (Sandbox Code Playgroud)
警告:在撰写本文时,在IE/Safari中无效,请参阅:caniuse.com/#search=download
编辑:如果您正在寻找一个实际的 JavaScript解决方案,请参阅lajarre的答案
使用JavaScript,即使不是不可能,也很困难(?).我建议使用某种代码隐藏语言,如PHP,C#或Java.如果您使用PHP,您可以在按钮发布的页面中执行以下操作:
<?php
header('Content-type: application/pdf');
header('Content-disposition: attachment; filename=filename.pdf');
readfile("http://manuals.info.apple.com/en/iphone_user_guide.pdf");
?>
Run Code Online (Sandbox Code Playgroud)
这似乎也适用于JS(来自http://www.phpbuilder.com/board/showthread.php?t=10149735):
<body>
<script>
function downloadme(x){
myTempWindow = window.open(x,'','left=10000,screenX=10000');
myTempWindow.document.execCommand('SaveAs','null','download.pdf');
myTempWindow.close();
}
</script>
<a href=javascript:downloadme('http://manuals.info.apple.com/en/iphone_user_guide.pdf');>Download this pdf</a>
</body>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
95479 次 |
| 最近记录: |