javascript - Express js在React客户端中发送文件并下载

标签 javascript reactjs express

我有express js作为后端,react js作为前端,在某些 route 我必须发送一个文件来响应我已经这样做的请求:

return res.status(200).sendFile(path.resolve(`files/${product.fileName}`))

我遇到的问题是我应该如何在reactjs客户端中处理这个响应? 我记录了响应,正文是:

body : ReadableStream 
       locked : true

最佳答案

你能像这样使用express的发送实用程序吗?

 var fs = require('fs-extra'); // import fs-extra package
 var buffer = fs.readFileSync(req.query.filepath);
 var bufferBase64 = new Buffer(buffer);
 res.status(200).send(bufferBase64);

在React客户端中,您可以使用react-file-download包。

import fileDownload from 'react-file-download';
fileDownload(response.data, "profilepic.jpg"); //This will download the file in browser.

关于javascript - Express js在React客户端中发送文件并下载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50518372/

相关文章:

javascript - 以下可缓存资源的新鲜度生命周期很短 - Google 字体

javascript - React-Native - 如何替换 React-Native 核心组件的功能

javascript - Express.js - 如何修改路由中的 app.locals 变量

javascript - capybara 无法在页面上找到值(value)

javascript - AJAX请求JSON有两种方式

javascript - ag-grid-react 在基本组件导入时崩溃 : missing react-dom-factories

node.js - Express:设置maxAge后对单个文件SetHeader 'Cache-Control'

node.js - 为什么我的路由在 crud 应用程序中发出 get 请求而不是 post 请求?

javascript - 每 30 秒用另一个 div 替换一个 div

node.js - 如何在reactJS中初始化未知长度的数组状态?