Dod*_*nas 108 jquery file download
如何在用户单击链接时提示下载.
例如,而不是:
<a href="uploads/file.doc">Download Here</a>
Run Code Online (Sandbox Code Playgroud)
我可以用:
<a href="#">Download Here</a>
$('a').click... //Some jquery to download the file
Run Code Online (Sandbox Code Playgroud)
这样,Google就不会将我的HREF和私人文件编入索引.
这可以用jQuery完成,如果是这样,怎么样?或者应该用PHP或其他东西来完成?
kar*_*m79 156
我可能会建议这样做,作为一个更优雅的降级解决方案,使用preventDefault
:
$('a').click(function(e) {
e.preventDefault(); //stop the browser from following
window.location.href = 'uploads/file.doc';
});
<a href="no-script.html">Download now!</a>
Run Code Online (Sandbox Code Playgroud)
即使没有Javascript,至少这种方式用户也会得到一些反馈.
Rob*_*Rob 22
如果您不希望搜索引擎为某些文件编制索引,您可以使用robots.txt告诉网络蜘蛛不要访问您网站的某些部分.
如果您只依赖于javascript,那么一些没有它的用户将无法点击您的链接.
Kob*_*obi 18
这是一篇很好的文章,展示了从搜索引擎隐藏文件的许多方法:
JavaScript不是索引页面的好方法; 它不会阻止用户直接链接到您的文件(从而将其显示给抓取工具),正如Rob提到的那样,并不适用于所有用户.
一个简单的解决方法是添加rel="nofollow"
属性,但是如果没有robots.txt,它就不完整了.
<a href="uploads/file.doc" rel="nofollow">Download Here</a>
Run Code Online (Sandbox Code Playgroud)
Mac*_*ony 11
是的,您必须将window.location.href更改为您要下载的文件的URL.
window.location.href = 'http://www.com/path/to/file';
Run Code Online (Sandbox Code Playgroud)
var link=document.createElement('a');
document.body.appendChild(link);
link.href=url;
link.click();
Run Code Online (Sandbox Code Playgroud)
小智 8
使用 jQuery 函数
var valFileDownloadPath = 'http//:'+'your url';
window.open(valFileDownloadPath , '_blank');
Run Code Online (Sandbox Code Playgroud)通过声明window.location.href = 'uploads/file.doc';
您显示存储文件的位置.您当然可以使用.htacess强制存储文件所需的行为,但这可能并不总是很少....
最好创建一个服务器端的php文件并将其放入其中:
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename='.$_REQUEST['f']);
readfile('../some_folder/some_subfolder/'.$_REQUEST['f']);
exit;
Run Code Online (Sandbox Code Playgroud)
此代码将返回任何文件作为下载,而不显示您实际存储它的位置.
你打开这个php文件 window.location.href = 'scripts/this_php_file.php?f=downloaded_file';