思路很简单
controller接收Base64编码,将其转换成字节数组,再以流的形式生成图片。
我本地测试成功,可以形成图片,放到服务器上之后图片生成有问题。
经测试是因为传过来的参数有问题。
应为:
data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACsAAAAYCAYAAABjswTDAAANB0lEQVRYRx2WeZDb9XnGPz/d97nSStrV3pf3ss3iE5+LjbGpgWIwaVpCAm0CtCTTa9okbafTyR+ZdKbTNMlMShImx7gYMMYYA6VgjA/w+lzvrb1XXkkrabW67+vXQX+9/3xnvvM+7/N+。。。。
结果为:
data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACsAAAAYCAYAAABjswTDAAANB0lEQVRYRx2WeZDb9XnGPz/d97nSStrV3pf3ss3iE5 LjbGpgWIwaVpCAm0CtCTTa9okbafTyR ZdKbTNMlMShImx7gYMMYYA6VgjA/w lzvrb1XXkkrabW67 vXQX 9/3xnvvM 7/N 。。。。
加号都没了
应该怎样接收参数才能避免这个情况呢?
先解决你的问题,将入参中的“+”用%2B代替
有些符号在URL中是不能直接传递的,如果要在URL中传递这些特殊符号,那么就要使用他们的编码了。
编码的格式为:%加字符的ASCII码,即一个百分号%,后面跟对应字符的ASCII(16进制)码值。
+ : URL 中+号表示空格,对应编码:%2B
空格 :URL中的空格可以用+号或者编码表示,对应编码:%20
/ :分隔目录和子目录,对应编码:%2F
?:分隔实际的URL和参数,对应编码:%3F
%:指定特殊字符,对应编码:%25
#:表示书签,对应编码:%23
&:URL 中指定的参数间的分隔符,对应编码:%26
=:URL 中指定参数的值,对应编码:%3D