通过邮寄请求发送文件

时间:2018-05-17 04:29:06

标签: node.js express

我想通过邮寄请求发送文件,但我似乎无法让它工作,有人能发现问题吗?

提前致谢

router.post('/:matchId', (req, res) => {
    zed.makeSpecBatch(req.body).then(matchCmd => {
        fs.writeFile(`./matches/${req.params.matchId}.bat`, matchCmd, err => {
            if (err) console.log(err);
            res.sendFile(`${req.params.matchId}.bat`, {root: __dirname+'/../matches'})
        });
    });
});

2 个答案:

答案 0 :(得分:0)

您正在写入./matches/${req.params.matchId}.bat文件,但发送的__dirname+'/../matches'目录不正确。我认为你需要使用正确的路径

 __dirname+'/matches'

const path = require('path');


res.sendFile(`${req.params.matchId}.bat`, {root: path.join(__dirname, './matches')})

答案 1 :(得分:0)

  1. 如果您要发送文件(图片,音频和视频,pdf等),则必须通过req.files获取
  2. 在req.body中,您只获得文本和JSON数据。
  3. 在req.files中,您可以获得文件的完整对象

    AutoToTravelAdapter
      

    如果我不对,请回答正确答案。