Express 通过 Http 下载文件
router.get('/download', (req, res) => {
let filePath = path.join(__dirname, `../${basePath}/${data.path}`)
let stats = fs.statSync(filePath);
if (stats.isFile()) {
/****** 方法一 ********/
// res.download(filePath, function (err) {
// if (err) { console.log(err); }
// });
try {
let filePath = '/test.txt';
let fileName = path.basename(filePath);
res.download(filePath, fileName);
} catch (error) {
return res.status(500).send({
result: 'error',
message: `Failed to download file: ${error.message}`
})
}
/****** 方法二 ********/
res.set({
'Content-Type': 'application/octet-stream',
// 'Content-Disposition': 'attachment; filename=' + fileName,
'Content-Length': stats.size
});
fs.createReadStream(filePath).pipe(res);
} else {
res.json({ code: 500, message: "文件不存在!" });
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
上次更新: 2024/01/30, 00:35:17
- 01
- Node与GLIBC_2.27不兼容解决方案08-19
- 02
- Git清空本地文件跟踪缓存08-13