相关疑难解决方法(0)

使用Express从NodeJS Server下载文件

如何将我服务器中的文件下载到访问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)

但我无法获取文件名和文件类型(或扩展名).任何人都可以帮助我吗?

javascript file download node.js express

283
推荐指数
6
解决办法
33万
查看次数

返回下载文件的发布请求

我正在将数据发送到我的服务器,该服务器根据请求创建一个 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 路由,因为我无法以这种方式发送数据,我如何才能将此文件发送到客户端?

javascript node.js reactjs

9
推荐指数
1
解决办法
8266
查看次数

标签 统计

javascript ×2

node.js ×2

download ×1

express ×1

file ×1

reactjs ×1