php base64尺寸,PHP base64编码的图像显示不正确

我试图使用base64编码将图像(任何大小)发送到我创建的API。编码后的字符串会作为URL中的参数访问我的API。使用PHP构建的API。PHP base64编码的图像显示不正确

一旦请求命中我的API,我想将图像存储到我的服务器上,并将文件名保存在数据库中。这是工作,但我得到一些奇怪的输出与实际的形象。

我想我的存储服务器上的图像:

a52dd88fc1648ea8b2e71ac7238f7ba2.png

$encode = base64_encode(file_get_contents($image));

echo $encode;

为了进行测试,在此输出中是我使用的是传递给我的API的字符串。

在API:

$image = base64_decode($_POST['image']));

$image_name = md5($image) . ".jpg";

file_put_contents(/public/image/ . $image_name, $image);

这工作,我的形象被放到服务器在正确的目录与保存到数据库中的随机名字。

然而,直接导航到图像时,图像扭曲:

bf9f8623191e3a2469e71f81a1afec4e.png

如果你有敏锐的眼光,在图像的顶部部分实际上是正确的,它开始失效前,这让我开始思考字符串是否没有正确编码以作为参数发送?

任何线索都会很可爱,欢呼。

编辑:改变它POST,删除urlencode /解码&删除strtr。

2014-01-27

Alias

+1

PHP正在截断您的变量。您可以更改配置以允许更长的长度。我会马上切换到POST。 –

+1

也注意到一些浏览器/服务器对网址长度也设置了最大限制 –

+2

...如果您不使用GET,则不必使用urldecode,这实际上只是代码可能中断的另一种方式 –

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值