отправка файла по почте - PullRequest
0 голосов
/ 17 мая 2018

Я хочу отправить файл с помощью почтового запроса, но не могу заставить его работать, может кто-нибудь определить проблему?

заранее спасибо

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 голосов
/ 17 мая 2018
  1. Если вы отправляете такой файл, как (изображение, аудио и видео, pdf и т. Д.), То вам нужно извлечь по req.files
  2. В req.body вы получаете только текст и данные JSON.
  3. В req.files вы получите полный объект файла

    router.post('/:matchId', (req, res) => {
     // check here
    var files = req.files;
    console.log(files);
     zed.makeSpecBatch(req.files.file.path).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'})
        });
      });
    });
    

    Если я не прав, ответьте, пожалуйста, на правильный ответ.

0 голосов
/ 17 мая 2018

Вы пишете в файл ./matches/${req.params.matchId}.bat, но отправляете каталог __dirname+'/../matches', который является неправильным.Я думаю, вам нужно использовать правильный путь

 __dirname+'/matches'

или

const path = require('path');


res.sendFile(`${req.params.matchId}.bat`, {root: path.join(__dirname, './matches')})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...