如何从本地主机查看 ReactJS 中的图像

Posted

技术标签:

【中文标题】如何从本地主机查看 ReactJS 中的图像【英文标题】:How to view an image in ReactJS from localhost 【发布时间】:2022-01-01 16:02:11 【问题描述】:

我使用 phpmyAdmin 作为我的 localhost,Axios 做后端功能并响应显示在网页上,我创建了一个存储 ID 和 Blob 的表,因为 Blob 可以存储图像数据。我使用了状态挂钩并渲染了要在页面上显示的每个项目,但是当我渲染页面时,显示了一个损坏的图像。我尝试在该图像数据上执行 console.log(),它在控制台浏览器上显示为 type: 'Buffer', data: Array(50639)。

简而言之,我正在尝试从本地主机中的表中检索图像并将其显示在浏览器上

反应


function ProjectCard() 

    const [projectCard, setProjectCard] = useState([]);

    const instance = axios.create( 
        baseURL: "http://localhost:3001/api",
    );

    useEffect(() => 
        instance.get("/getAvailableProjects").then((response) => 
            setProjectCard(response.data);
        );
    , []);

    return (
        <div className="row g-4 py-4 border-bottom">
            projectCard.map((val) => 
                return (
                    console.log(val.PROJECT_IMAGE) /* displayed as type: 'Buffer', data: Array(50639) */
                    <div className="col-lg-3 col-md-6 mb-2" key=val.PROJECT_ID>
                        <img id="project-img" src=val.PROJECT_IMAGE className="img-fluid" /> /* BROKEN IMAGE */
                    </div>
                );
            )
       </div>
    )
;

export default ProjectCard;

服务器



app.get("/api/getAvailableProjects", (req, res) => 

    const sqlQuery = "SELECT *,  from projectdetail";

    db.query(sqlQuery, (_error, result) => 
        res.send(result);
    );
);

有没有办法将此 blob 数据转换为实际图像?

【问题讨论】:

【参考方案1】:

签出这个 JS 对象:

&lt;img src=URL.createObjectURL(file) alt="fooBar" /&gt;

它应该看起来像这样。

URL.createObjectURL:https://developer.mozilla.org/en-US/docs/Web/API/URL/createObjectURL

【讨论】:

我试过这个来创建一个 URL,但是它没有显示到页面上。我再次 console.log() 它给了我一个值 "blob:localhost:3000/e1f1a190-955a-4f03-9f46-83a1934d8837"

以上是关于如何从本地主机查看 ReactJS 中的图像的主要内容,如果未能解决你的问题,请参考以下文章

使用 ReactJS 动态加载本地图像

ReactJS:如何使用 Formik 处理图像/文件上传?

如何从reactjs中的json响应字段加载图像

如何从响应中读取文件名 - reactJs

如何防止 CORS 策略阻止从本地主机到第三方 API 的请求?

从 Promise(ReactJS 和 Axios)中提取图像数据