Content-Type: application/octet-stream Content-Disposition: attachment; filename=MyFileName.ext
router.get('/files', function(req, res, next) {
// 显示服务器文件
});
router.get('/file/:fileName', function(req, res, next) {
// 实现文件下载
});
const fs = require('fs');
const path = require('path');
router.get('/files', function(req, res, next) {
// 显示服务器文件
// 文件目录
var filePath = path.join(__dirname, './');
fs.readdir(filePath, function(err, results){
if(err) throw err;
if(results.length>0) {
var files = [];
results.forEach(function(file){
if(fs.statSync(path.join(filePath, file)).isFile()){
files.push(file);
}
})
res.render('files', {files:files});
} else {
res.end('当前目录下没有文件');
}
});
});
<!DOCTYPE html>
<html>
<head>
<title>下载文件选择</title>
</head>
<body>
<h1>请选择下载文件:</h1>
<% if(files.length>0) {%>
<ul>
<% files.forEach(function(file){ %>
<li>
<a href="/file/<%- file %>" target="_blank"><%- file %></a>
</li>
<%})%>
</ul>
<%} else {%>
<p>没有可下载文件…</p>
<%}%>
</body>
</html>
router.get('/file/:fileName', function(req, res, next) {
// 实现文件下载
var fileName = req.params.fileName;
var filePath = path.join(__dirname, fileName);
var stats = fs.statSync(filePath);
if(stats.isFile()){
res.set({
'Content-Type': 'application/octet-stream',
'Content-Disposition': 'attachment; filename='+fileName,
'Content-Length': stats.size
});
fs.createReadStream(filePath).pipe(res);
} else {
res.end(404);
}
});
机械节能产品生产企业官网模板...
大气智能家居家具装修装饰类企业通用网站模板...
礼品公司网站模板
宽屏简约大气婚纱摄影影楼模板...
蓝白WAP手机综合医院类整站源码(独立后台)...苏ICP备2024110244号-2 苏公网安备32050702011978号 增值电信业务经营许可证编号:苏B2-20251499 | Copyright 2018 - 2025 源码网商城 (www.ymwmall.com) 版权所有