Strapi调用PUT接口更新图片文件未生效问题咨询
Strapi PUT请求更新媒体库图片不生效的原因
该问题由Strapi原生接口的设计逻辑导致,和权限、配置错误无关:
- Strapi内容类
PUT接口仅处理结构化字段参数,不会解析请求中夹带的文件流,传入的图片参数会被直接忽略,因此不会触发报错也不会完成替换。 - Strapi将媒体文件的上传/处理逻辑、普通内容字段的更新逻辑做了完全拆分,不支持通过单次内容PUT请求同时完成文件上传+字段关联更新。
正确操作流程
- 第一步:调用已验证可用的
POST /api/upload接口,以multipart/form-data格式传入新图片,拿到返回结果中新图片在媒体库对应的id。 - 第二步:调用对应内容条目的
PUT更新接口,在data参数中将图片关联字段的值设置为上一步拿到的新图片id,即可完成图片替换,该操作和更新普通字段的逻辑完全一致。 - 第三步:如果不需要保留旧图片,可在关联关系更新完成后,调用
DELETE /api/upload/files/{旧图片ID}接口删除媒体库内的旧文件,避免冗余资源占用。
注意:即便是将PUT请求的格式设置为
multipart/form-data直接夹带文件,也不会被内容更新接口识别,这是Strapi REST接口的固定逻辑。
内容的提问来源于stack exchange,提问作者user16304169
相关产品推荐
相关产品推荐

