我正在尝试从一个express后端获取图像,并在react js前端显示它们。我怎样才能完美地实现这一点呢?
我试过获取保存在名为“Backup”的后端文件夹中的图像,并在react js前端将其显示给用户。我试过使用axios,但仍然得到一个无效的图像,而不是正确的图像。
下面是我在前端的获取请求。
fetchImages = () => {
const imageName = 'garande.png'
const url = `http://localhost:5000/fetchImage/${imageName}`
axios.get(url, {responseType: 'blob'})
.then(res => {
return(
<img src={res.data} alt="trial" />
)
}
}
这就是我在后端的server.js文件中的内容
app.get('/fetchImage/:file(*)', (req, res) => {
let file = req.params.file;
let fileLocation = path.join('../Backup/images/', file);
//res.send({image: fileLocation});
res.sendFile(`${fileLocation}`)
})
我希望图像会显示在用户页面中。谢谢。
3条答案
按热度按时间j2cgzkjk1#
这对我很有效:
hec6srdp2#
我使用useState()实现了一个类似的特性:
}
您也可以在后端使用
res.download
:anauzrmj3#
您不需要创建API来访问映像。直接从react frontend访问您的映像,如下所示:
希望这能解决你的问题。