后端返回http下载文件路径前端怎么下载
时间: 2024-09-20 15:14:21 浏览: 61
python后端接收前端回传的文件方法
在前端通过HTTP下载文件时,当后端提供文件的URL路径,前端通常会利用`fetch`、`XMLHttpRequest`(XHR)或者其他网络请求库来发起GET请求,并设置响应类型的处理。以下是基本步骤:
1. **获取URL路径**:
后端将文件的下载链接以文本形式返回给前端,例如:`https://example.com/download/file.zip`
2. **发起请求**:
使用JavaScript的`fetch`函数,示例代码如下:
```javascript
fetch('https://example.com/download/file.zip')
.then(response => {
if (!response.ok) {
throw new Error("Failed to download file");
}
return response.blob(); // 返回Blob对象
})
.then(blob => {
let url = window.URL.createObjectURL(blob); // 创建URL对象,用于创建下载链接
let aLink = document.createElement('a'); // 创建隐藏的a标签
aLink.href = url;
aLink.download = 'file.zip'; // 设置下载文件名
document.body.appendChild(aLink); // 添加到文档以便触发下载
aLink.click(); // 触发下载
document.body.removeChild(aLink); // 下载完成后移除a标签
});
```
或者使用传统的`XMLHttpRequest`:
```javascript
var xhr = new XMLHttpRequest();
xhr.open('GET', 'https://example.com/download/file.zip');
xhr.responseType = 'blob';
xhr.onload = function() {
if (xhr.status === 200) {
var blob = new Blob([xhr.response], {type: 'application/octet-stream'});
var url = URL.createObjectURL(blob);
var link = document.createElement('a');
link.href = url;
link.download = 'file.zip';
link.click();
URL.revokeObjectURL(url);
}
};
xhr.send();
```
阅读全文