php u0026,七牛上传策略的callbackBody将&转为\u0026导致导致Laravel无法解析

博主在使用七牛云的API时遇到一个问题,七牛将callbackBody中的'&'编码为'&',导致 Laravel 业务服务器无法正确解析。尝试上传文件并配置callbackBody后,返回的数据中'&'未被解码回'&',进而影响变量解析。目前解决方案可能是业务端自行编写函数进行解码,但这样会引发含有'&'变量的处理问题。
摘要由CSDN通过智能技术生成

七牛的API把callbackBody中的'&'encode为'\u0026',导致业务服务器(laravel)无法解析。

求问是我哪里配置出了问题吗,还是这是七牛API的问题,还是说需要在业务端自己写个函数去解析。那万一碰到变量中含有\u0026时怎么办?

求大神指点。。。

在上传策略中设置callbackBody如下

"callbackBody" => "fname =$(fname)

&fkey =$(key)

&bucket =$(bucket)

&size =$(fsize)

&mimetype=$(mimeType)

&ext =$(ext)}",

然后上传时报错

f65ffbd6fd73f7e52c8db2d85e6ca3cd.png

可以看到&全被转码成了\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为&导致解析变量时出现问题。

`

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值