百度云bos 存储 base64形式上传成功后,下载的图片 里面还是原base64 内容 本地无法查看 也无法在网站展示

百度云bos 存储 base64形式上传成功后,下载下来的图片 里面还是原base64 内容 本地无法查看 也无法在网站展示,img和video采用base64格式能用

文件开头是data:image/jpeg;base64,/9j/4RlRRXhpZgAATU
但把开头去掉也不正常

补充问题 百度云采用 百度自己的客户端api 上传内容到 百度云
client.putObject(BUCKET, newName, file, options)
其中file为base64格式(接口会有验证,会验证是字符串还是base64)我采用了base64 正常上传以后 查listbucket也能查到在bos里图片,但直接通过url 下载
https://su.bcebos.com/v1/dev-...
图片 无法正常查看(因为内部编码是base64的)
请求头里的content-type用的也是图片的
image.png

阅读 5.8k
4 个回答

这是转换以后的流文件,直接用链接是拿不到文件的。你要在后端拿到流文件后回传到前端,才能识别为文件,具体操作可以查文档。我用的阿里云,API 里就有一个 getStream 方法,百度云应该也类似。image 通过链接能直接显示图片,是因为内部已经封装好了转换逻辑。

完全不知道你想问啥,描述清楚点啊

请求头里的contentType是告诉服务器怎样解析你的请求主体的,其实你传base64的话,主体其实是个字符串,contentType可不设定(一般即json)。
如果是使用formData上传文件,则设定为multipart/form-data即可。

你这个地址是怎么得到的,访问不到图片?

具体的建议查看百度云的开发文档,我没用过,猜不到。

不过在做 atob(ascii 转二进制)的时候,data:image/jpeg;base64, 这一截需要去掉。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题