我使用的是Egnyte API
我不明白响应对象是如何工作的,我试图将数据转换为Blob对象和URL。createObjectURL,但这对我不起作用。我不知道我是否可以显示这些图像到我的网站。
DOCS字节API:列出文件或文件夹
当我想下载图像时也会遇到这个问题,因为api响应返回纯加密文本,我不知道如何将其转换为对象以便使用javascript/html下载
DOCS字节API:下载文件
Axios从Egnyte API获取图像
const getImages = () => {
axios.get(`${API}/${params.id}/images/`, config).then(res => {
setImagesList(res.data.files)
}).catch((error) => {
console.log(error)
})
}
响应如下所示:
将项目转换为Blob对象和URL。createObjectURL
const displayImg = (list_images) => {
return list_images.map(img => {
const url = URL.createObjectURL(new Blob([img]))
return (
<div className='div_img' key={img.name}>
<img src={url} />
</div>
)
})
}
URL对象如下所示:
但网站看起来:
来自API下载文件的响应:
如果有人能向我解释如何将API响应转换为图像对象,以便能够显示和下载它(以及要下载的文件),我将非常感激。
非常感谢!
1条答案
按热度按时间fcwjkofz1#
使用FileReader将blob转换为base64字符串,该字符串可以用作图像源(类似于
data:image/png;base64,...
)-这篇文章将向您展示如何实现:https://stackoverflow.com/a/18650249/1143126
这个函数可以用来处理axios给出的结果,有点像这样: