jquery下载文件
使用jQuery下载文件的方法
通过jQuery实现文件下载通常需要结合前端JavaScript和后端服务。以下是几种常见的方法:
创建隐藏的<a>标签触发下载
动态生成一个隐藏的<a>标签,设置其href属性为文件URL,并添加download属性。通过jQuery触发点击事件:
var fileUrl = '/path/to/file.pdf';
var $a = $('<a>', {
href: fileUrl,
download: 'filename.pdf'
}).hide().appendTo('body');
$a[0].click();
$a.remove();
通过AJAX请求下载文件

对于需要身份验证或特殊处理的文件,可以使用AJAX请求获取文件数据,然后创建Blob对象下载:
$.ajax({
url: '/api/download',
type: 'GET',
xhrFields: {
responseType: 'blob'
},
success: function(data) {
var blob = new Blob([data]);
var link = document.createElement('a');
link.href = window.URL.createObjectURL(blob);
link.download = 'file.txt';
link.click();
}
});
表单提交方式下载文件

如果需要传递复杂参数,可以通过动态创建表单的方式:
var $form = $('<form>', {
method: 'POST',
action: '/download'
}).appendTo('body');
$form.append('<input type="hidden" name="fileId" value="123">');
$form.submit();
$form.remove();
注意事项
- 跨域下载需要服务器设置正确的CORS头部
download属性在某些浏览器中可能受限- 大文件下载建议使用分块传输或直接链接方式
- 对于敏感文件,应在服务器端进行权限验证
服务器端示例(Node.js)
app.get('/download', function(req, res) {
const file = `${__dirname}/files/report.pdf`;
res.download(file); // 设置附件下载
});
以上方法可根据具体需求选择使用,简单文件下载推荐第一种方法,复杂场景可考虑AJAX或表单方式。






