Как скачать файл с помощью nodejs + express + реагирует без перенаправления на базовый URL - PullRequest
0 голосов
/ 18 июня 2019

Я реализовал загрузочный образ, но по любой причине, когда файл загружается, страница перенаправляется на домашнюю страницу.

Реагирует на страницу js со ссылкой для загрузки и функцией:

<TableCell>
 <Link to={'/'}>
   <span onClick={e => downloadDigitalImage(param1, param2)}>Download</span>
 </Link>
</TableCell>

function downloadDigitalImage (img, name) {
    fetch(process.env.REACT_APP_HOST + '/decodeDigitalFile', {
      method: 'POST',
      headers: {
        'Accept': 'application/json',
        'Content-Type': 'application/json'
      },
      body: JSON.stringify({
        image: img,
        name: name
      })
    })
      .then(response => response.json())
      .then(response => {
        window.open(process.env.REACT_APP_HOST + '/download?namefile=' + response.file, '_self')
      })
      .catch(error => {
        console.log(error)
      })
  }

Вкл.сервер, используя nodejs + express, я сначала декодирую файл, а затем загружаю его

app.post('/decodeDigitalFile', function (req, res, next) {
    file = req.body.image
    var Readable = require('stream').Readable
    const imgBuffer = Buffer.from(file, 'base64')
    var s = new Readable()
    s.push(imgBuffer)
    s.push(null)
    s.pipe(fs.createWriteStream(req.body.name))
    return res.status(200).send({ file: req.body.name });
})

app.get('/download', function (req, res) {
    console.log('down')
    const file = __dirname + '/' + req.query.namefile;
    res.download(file);
});

В ответ у меня есть компонент с именем search (домашняя страница), этот компонент отправляет states черезlocation к компоненту searchDetailed.searchDetailed - это компонент, где находится ссылка для скачивания.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...