七牛上传策略的 callbackBody 将&编码为\u0026 导致导致 Laravel 无法解析的问题?
七牛的 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 为 & 导致解析变量时出现问题。
`
推荐文章: