首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使用JavaScript启动文件下载

使用JavaScript启动文件下载
EN

Stack Overflow用户
提问于 2008-12-13 21:37:04
回答 11查看 136.2K关注 0票数 60

假设我的网站上有文件的下载链接。

单击这些链接时,将向服务器发送一个AJAX请求,服务器将返回带有文件位置的URL。

我想要做的是,当响应返回时,让浏览器下载文件。有没有一种便携的方法可以做到这一点?

EN

回答 11

Stack Overflow用户

回答已采纳

发布于 2013-04-06 07:43:37

尝试这个库https://github.com/PixelsCommander/Download-File-JS它比前面描述的所有解决方案都更现代,因为它使用了"download“属性和方法组合来带来最好的体验。

在此解释- http://pixelscommander.com/en/javascript/javascript-file-downliading-ignore-content-type/

这似乎是在JavaScript中开始下载的理想代码。

票数 5
EN

Stack Overflow用户

发布于 2011-01-10 20:45:00

我们这样做:首先添加这个脚本。

代码语言:javascript
复制
<script type="text/javascript">
function populateIframe(id,path) 
{
    var ifrm = document.getElementById(id);
    ifrm.src = "download.php?path="+path;
}
</script>

把它放在你想要的下载按钮的位置(这里我们只用了一个链接):

代码语言:javascript
复制
<iframe id="frame1" style="display:none"></iframe>
<a href="javascript:populateIframe('frame1','<?php echo $path; ?>')">download</a>

文件'download.php‘(需要放在你的服务器上)只包含:

代码语言:javascript
复制
<?php 
   header("Content-Type: application/octet-stream");
   header("Content-Disposition: attachment; filename=".$_GET['path']);
   readfile($_GET['path']);
?>

所以当你点击链接时,隐藏的iframe会获取/打开源文件'download.php‘。将path作为get参数。我们认为这是最好的解决方案!

应该注意的是,此解决方案的PHP部分是一个简单的演示,可能非常不安全。它允许用户下载任何文件,而不仅仅是一个预定义的文件集。这意味着他们可以下载网站本身的部分源代码,可能包含API凭证等。

票数 26
EN

Stack Overflow用户

发布于 2008-12-13 23:20:14

只需从javascript调用window.location.href = new_url,它就会将浏览器重定向到用户在地址栏中键入该地址

票数 13
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/365777

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档