NextJS对接Strapi上传用户头像无法关联对应用户问题求助
问题修复方案
- 核心问题:
ref参数取值错误
Strapi内置的用户权限插件提供的用户模型唯一标识为
plugin::users-permissions.user,而非你代码中填写的user,系统无法通过user匹配到对应用户模型,因此无法完成关联。
修正方式:将formData.append("ref", "user");替换为formData.append("ref", "plugin::users-permissions.user");
需校验的补充点1:
refId有效性
确认代码中id变量确实是当前登录用户的正确ID,可添加console.log(id)排查是否存在空值、类型错误的情况,refId要求和用户模型的主键值完全匹配。需校验的补充点2:字段权限配置
登录Strapi后台,进入「设置→用户与权限插件→角色→Authenticated」,找到对应用户模型的image字段,确认勾选了编辑权限,同时确保上传接口的关联权限已开启。
修正后的完整代码示例:
const handleImageSubmit = async (e) => { e.preventDefault(); const formData = new FormData(); formData.append("files", image); // 修正ref参数为Strapi用户模型的正确唯一标识 formData.append("ref", "plugin::users-permissions.user"); formData.append("refId", id); formData.append("field", "image"); const res = await fetch("http://localhost:5090/upload", { method: "POST", body: formData, headers: { Authorization: "Bearer " + token, }, }); console.log(res); if (res.ok) { alert("image uploaded"); } };
内容的提问来源于stack exchange,提问作者Anargyros Stylidis
相关产品推荐
相关产品推荐

