如何将我服务器中的文件下载到访问nodeJS服务器中页面的计算机?
我正在使用ExpressJS而且我一直在尝试这个:
app.get('/download', function(req, res){
var file = fs.readFileSync(__dirname + '/upload-folder/dramaticpenguin.MOV', 'binary');
res.setHeader('Content-Length', file.length);
res.write(file, 'binary');
res.end();
});
Run Code Online (Sandbox Code Playgroud)
但我无法获取文件名和文件类型(或扩展名).任何人都可以帮助我吗?
我正在将数据发送到我的服务器,该服务器根据请求创建一个 pdf 文件,该文件创建正常,但我无法将文件发送回客户端。我正在使用 React 提交表单
handleSubmit(event) {
event.preventDefault();
var body = {
id: this.state.id,
text: this.state.text
}
fetch('http://localhost:5000/pdf', {
method: 'POST',
body: JSON.stringify(body),
headers: {
'Content-Type': 'application/json'
},
}).then(function(file) {
window.open(file.url);
});
}
Run Code Online (Sandbox Code Playgroud)
它打开http://localhost:5000/pdf,但由于我没有 GET 路由,所以没有下载。这是我的 POST 路线
router.post('/pdf', async function(req, res) {
var makePdf = require('./file-create/pdf.js');
makePdf(req, res);
});
Run Code Online (Sandbox Code Playgroud)
并且文件被返回为 pdfDoc.pipe(res);
我不能只使用 GET 路由,因为我无法以这种方式发送数据,我如何才能将此文件发送到客户端?