Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/440.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 开始使用JQuery下载文件_Javascript_Jquery - Fatal编程技术网

Javascript 开始使用JQuery下载文件

Javascript 开始使用JQuery下载文件,javascript,jquery,Javascript,Jquery,我想在单击按钮时开始下载文件。 我只有文件的路径。 如何开始下载? 这就是我迄今为止所尝试的: $('#download_button').click(function(){ var filepath = $(this).attr('data-filepath'); var do = '<a href="'+ filepath +'" download="file">file</a>'; $(body).append(do); }); $(“#

我想在单击按钮时开始下载文件。
我只有文件的路径。
如何开始下载?
这就是我迄今为止所尝试的:

$('#download_button').click(function(){

    var filepath = $(this).attr('data-filepath');
    var do = '<a href="'+ filepath +'" download="file">file</a>';
    $(body).append(do);
});
$(“#下载按钮”)。单击(函数(){
var filepath=$(this.attr('data-filepath');
var do=“”;
$(正文)。追加(do);
});
我做错了什么。
我从不想重定向页面。

是否从浏览器或下载文件的软件开始下载(如果安装在客户端计算机上)

如果要将文件下载到客户端,请执行以下操作:

$('#download_button').click(function(){
    var filepath = $(this).attr('data-filepath');
    location.href = filepath;
});

location.href
将查找页面,但找不到任何内容,因此将下载文件。

您不能强制以JavaScript下载文件


您可以做的是
location.href=“somefile.ext”,但只有当服务器将
内容处置:附件
作为其对该文件请求的响应头之一时,才会下载该文件。

或者,您也可以设置
顶部位置

$('#download_button').click(function(){
    var filepath = $(this).attr('data-filepath');
    top.location.href = filepath;
});

您可以使用jQuery和submit函数创建表单。这不会更改地址栏中的URL

$('#download_button').click(function(){

        var filepath = $(this).attr('data-filepath');
        var form = $('<form>').attr('action', filepath);
        form.submit();
});
$(“#下载按钮”)。单击(函数(){
var filepath=$(this.attr('data-filepath');
var form=$('').attr('action',filepath);
表单提交();
});

我尝试您的代码,打开一个新窗口,然后关闭该窗口并提示下载我已安装IDM为什么文件从未在IDM中开始下载。相反,它开始在浏览器中下载。我不确定Internet下载管理器为什么不下载该文件。可能要确保您发送的标题是Niet在回答中提到的正确标题。这段代码在本地主机上运行良好,但在我的服务器上,当我单击“下载”按钮时,它会在浏览器中以文本形式打开完整的文件。这实际上取决于您使用哪个后端来服务器文件。查看有关服务器(apache/tomcat等)的“头”和/或模块的文档,如果您正在使用脚本语言(如PHP)生成文件,请查看此类文件的具体示例。What is
top.location
您建议Niet的内容。我尝试了
location.href
,我的文件是具有自定义扩展名的xml文件。因此,当我单击按钮而不是开始下载时,在浏览器中将完整的文件显示为文本。配置服务器以发送具有自定义扩展名的文件的
内容处置:附件
标题。我如何执行此操作取决于您的服务器。这非常适合我在服务器上使用MVC。请尝试为表单指定http方法,根据您使用的方法将$('')更改为$('')或$('')。还要确保文件路径是可访问的。