php无法解码js发过来的base64图片编码,有诡异空格

我通过vue的axois通过post方法向php转图片编码,在php base64_decode解码的时候总是失败

发现

  1. 在php里,base64编码里的'+'号变成了空格

  2. 尝试用str_replace(' ', '+', $str)失败,无法替换

  3. 尝试用str_replace(' ', '%2B', $str)成功替换,还是无法解码

  4. 对比初始的base64编码和替换后的编码发现中间少了几行(我认为原因就出在这里)

  5. 后面尝试
    (1)在js里先将'+'号替换到'-',再在php里替换回来,同样上面3和4

(2)在js里使用encodeURIComponent,再在php里解码回来,同样上面3和4

啊啊啊,我主要是做前端的,php这方面不是很熟悉,查了很久资料都没找到解决方法,相当难受

代码:
JavaScript:

https://img2.mukewang.com/5c0739270001eff903190226.jpg

PHP:

https://img4.mukewang.com/5c0739310001b19003450229.jpg

https://img2.mukewang.com/5c07393d00015ec904120462.jpg

慕田峪9158850
浏览 1280回答 1
1回答

MMTTMM

我觉得这是php的锅,base64转码之后的图片,php解码应该是解码 'data:image/png;base64,' 后面的一串代码$img = substr('img数据', 22);file_put_contents('path', base64_decode($img));
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript