七牛的API把callbackBody中的'&'encode为'\u0026',导致业务服务器(laravel)无法解析。
求问是我哪里配置出了问题吗,还是这是七牛API的问题,还是说需要在业务端自己写个函数去解析。那万一碰到变量中含有\u0026时怎么办?
求大神指点。。。
在上传策略中设置callbackBody如下
"callbackBody" => "fname =$(fname)
&fkey =$(key)
&bucket =$(bucket)
&size =$(fsize)
&mimetype=$(mimeType)
&ext =$(ext)}",
然后上传时报错
可以看到&全被转码成了\u0026。
业务服务器用的是Laravel,通过curl指令测试
`curl -H "Content-Type: application/x-www-form-urlencoded" -X POST --data "fname=3.1+Random+Testing.pptx\u0026key=3.1+Random+Testing.pptx\u0026bucket=verimake-video\u0026size=188533\u0026mimetype=application%2Fvnd.openxmlformats-officedocument.presentationml.presentation\u0026ext=.pptx" http://(serveruri)/Video/callback
在业务端用dd函数将得到的input打印如下
array:1 [▼
"fname" => "3.1 Random Testing.pptx\u0026key=3.1 Random Testing.pptx\u0026bucket=verimake-video\u0026size=188533\u0026mimetype=application/vnd.openxmlformats-officedocument.presentationml.presentation\u0026ext=.pptx"
]
也就是说因为\u0026没有被deocode为&导致解析变量时出现问题。
`