Shopware 6图片上传API问题:Base64数据未被正确处理
解决Shopware 6媒体上传接口无法处理Base64数据的问题
- 核心问题:你直接发送的Base64字符串并不是接口要求的二进制文件体,后端接收后只会原样存储,不会自动解码处理。
- 正确处理流程:
- 将Base64编码的图片数据解码为原始二进制数据:
- 前端场景(如JavaScript):先去掉Base64前缀(若存在,比如
data:image/jpg;base64,),用atob()解码为字符串,再转换为Uint8Array或Blob; - 后端场景(如PHP):直接用
base64_decode()解码得到二进制字符串。
- 前端场景(如JavaScript):先去掉Base64前缀(若存在,比如
- 构造请求时,请求体直接传入解码后的二进制数据,不要包裹在JSON结构里。
- 确认请求头:保持
Content-Type: image/jpg即可,无需额外特殊请求头(若HTTP客户端默认带表单编码,需手动禁用)。
- 将Base64编码的图片数据解码为原始二进制数据:
- 验证标准:上传完成后重新下载媒体文件,能被图片查看器正常打开,即为上传成功。
内容的提问来源于stack exchange,提问作者fwend
相关产品推荐
相关产品推荐

