You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从MySQL中显示图片?React接收ArrayBuffer展示头像问题

解决ArrayBuffer格式头像的展示问题

前端处理步骤

把存在state里的ArrayBuffer转换成浏览器可识别的图片URL,核心是借助Blob和URL.createObjectURL实现:

import { useMemo, useState } from 'react';

function UserAvatar() {
  // 假设state中存储的头像是ArrayBuffer格式的avatarBuffer
  const [avatarBuffer, setAvatarBuffer] = useState(null);

  // 转换ArrayBuffer为可展示的URL
  const avatarUrl = useMemo(() => {
    if (!avatarBuffer) return null;
    // type需和后端返回的图片类型匹配,比如image/png、image/jpeg
    const imageBlob = new Blob([avatarBuffer], { type: 'image/jpeg' });
    return URL.createObjectURL(imageBlob);
  }, [avatarBuffer]);

  return (
    <div>
      {avatarUrl && (
        <img
          src={avatarUrl}
          alt="用户头像"
          // 图片加载完成后释放URL,避免内存泄漏
          onLoad={() => URL.revokeObjectURL(avatarUrl)}
        />
      )}
    </div>
  );
}

后端注意事项

确保后端返回正确的二进制数据:

  • 数据库中头像字段需设为BLOB类型,查询时直接读取二进制内容
  • 响应头要设置正确的Content-Type(如image/jpeg),返回时不做字符串转义,直接输出二进制流

内容的提问来源于stack exchange,提问作者user19786344

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.21 23:54:27