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,这实际上只是代码可能中断的另一种方式 –

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/438810.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Windows电脑SMB共享设置方法

SMB简介: SMB(Server Message Block)(*nix平台和Win NT4.0又称CIFS)协议是Windows平台标准文件共享协议,Linux平台通过samba来支持。SMB最新版本v3.0,在v2.0基础上针对WAN和分布式有改进。 建议使用原版wind…

php个人扫码支付,PHP个人发卡网源码,支持MA支付对接,扫码自动发货

PHP个人发卡网源码,支持MA支付对接,扫码自动发货。源码介绍个人发卡网源码,支持码支付对接,扫码自动发货.自适应网页,可为商品设置优惠套餐,后台管理功能丰富。前台发卡页面有点粗糙,已开源的可…

php网页表格样式,HTML5制作表格样式

废话不多说了,具体代码如下所示:表格*{margin: 0;padding: 0;}body{font: italic 20px Georgia, serif;letter-spacing: normal;background-color: #f0f0f0;}#content{width: 750px;padding: 40px;margin: 0 auto;background-color: #fff;border-left: 3…

SharePoint 开发TimerJob 介绍

项目需要写TimerJob,以前也大概知道原理,不过,开发过程中,还是遇到一些问题,网上看了好多博客,也有写的灰常好的,不过,自己还是想再写一下,也算是给自己一个总结&#xf…

linux php环境搭建 图文教程,linux php环境搭建教程

1) 安装依赖包yum -y install wget vim pcre pcre-devel openssl openssl-devel \libicu-devel gcc gcc-c autoconf libjpeg libjpeg-devel libpng \libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib \zlib-devel glibc glibc-devel glib2 glib2-devel ncurse…

【转】The password supplied with the username Domain\UserName was not correct. AD密码定期更换

起因 今天想进入SharePoint 2013 Central Administration创建一个WebApplication,尽然发生了错误: The password supplied with the username Domain\UserName was not correct. Verify that it was entered correctly and try again 具体如下图&#x…

第一节: Timer的定时任务的复习、Quartz.Net的入门使用、Aop思想的体现

一. 前奏-Timer类实现定时任务 在没有引入第三方开源的定时调度框架之前,我们处理一些简单的定时任务同时都是使用Timer类, DotNet中的Timer类有三个,分别位于不同的命名空间下,分别是: ①.位于System.Windows.Forms里…

php 自动验证类,Thinkphp实现自动验证和自动完成

这篇文章主要介绍了Thinkphp实现自动验证和自动完成的相关资料,需要的朋友可以参考下Thinkphp的自动验证和自动完成都是根所表单提交的内容来的,对部分数据进行规则验证和处理后插入到数据库。1、自动验证格式:array(array(验证字段1,验证规则,错误提示,…

第二节:比较DateTime和DateTimeOffset两种时间类型并介绍Quartz.Net中用到的几类时间形式(定点、四舍五入、倍数、递增)

一. 时间的类型 1. 背景 这里为什么要介绍时间类型呢,明明是定时调度篇,原因是在定时任务中,任务什么时间开始执行,什么时间结束执行,要用到各种各样的时间模式,虽然这不能算是一个复杂的问题,但…

第三节: Quartz.Net五大构件之Scheduler(创建、封装、基本方法等)和Job(创建、关联等)

一. 五大构件 引言: Quartz.Net的五大构件 1. 调度器:Scheduler 2. 作业任务:Job 3. 触发器: Trigger 4. 线程池: SimpleThreadPool 5. 作业持久化:JobStore 二. Scheduler详解 1. 创建Scheduler的两…

第五节: Quartz.Net五大构件之Trigger的四大触发类

一. WithSimpleSchedule(ISimpleTrigger) 1. 用途:时、分、秒上的轮询(和timer类似),实际开发中,该场景占绝大多数. 2. 轮询的种类:永远轮询和限定次数轮询. 3. 参数中的几个函数: A.执行间隔…

oracle-物理模型实现,生产电算系统的设计与开发(JSP,Oracle)

生产电算系统的设计与开发(,Oracle)(任务书,开题报告,中期检查表,文献综述,外文翻译,毕业论文9500字,程序代码,Oracle数据库,答辩PPT)本系统是基于B/S模型的,采用Myeclipse集成开发环境,以JAVA作为开发语言,数据库则是采用Oracle实现数据的存…

第六节: 六类Calander处理六种不同的时间场景

背景介绍及其使用 该章节主要补充介绍,在前一章四类触发器的基础上配合六大Canlander来动态删减某些时间,来满足更多的应用场景。 1. DailyCalendar:动态排除某天的某些字段. (需求:每天8-23点执行,每隔1s执行一次,但…

第七节:Trigger(SimpleTrigger、CronTrigger)哑火(MisFire)策略 :

一. 简介 1. 什么是哑火 由于某些原因导致触发器(trigger)在该触发的时候没有得到触发,后续对应的解决策略即为哑火策略。(个人理解) 2. 哑火触发的条件 ①:所有的工作线程都在忙碌,导致某些trigger得不到触发.(如:simplethreadpool 默认是…

第八节: Quartz.Net五大构件之SimpleThreadPool及其四种配置方案

一. 简介 揭秘: SimpleThreadPool是Quartz.Net中自带的线程池,默认个数为10个,代表一个Scheduler同一时刻并发的最多只能执行10个job,超过10个的job需要排队等待。 二. 四种配置方案 1. NameValueCollection的方式 需要利用StdSch…

隐藏wp login.php,Wordpress 隐藏登陆链接

用过Wordpress做博客或者建站的朋友,都会知道Wordpress默认的登陆地址是wp-login.php,很多恶意程序就是通过爬这个地址,尝试使用常见的用户名密码组合来入侵Wordpress。尽管我们可以通过使用复杂的用户名、高强度的密码来防止恶意程序的猜测&…

第九节: 利用RemoteScheduler实现Sheduler的远程控制

一. RemoteScheduler远程控制 1. 背景: 在A服务器上部署了一个Scheduler,我们想在B服务器上控制这个Scheduler。 2. 猜想: A服务器上的Scheduler需要有地址、需要有端口、需要有名称(实际上也是如此)。 3. 需求: 一个控制台程序…

oracle扩容日志文件,调整Oracle Redo Logfile日志文件的大小

1、扩容lvlvextend -L 1G /dev/oravg/lv_redolog11lvextend -L 1G /dev/oravg/lv_redolog12lvextend -L 1G /dev/oravg/lv_redolog212、调整了一下大小,将每个日志文件调整为2Gselect * from v$logfile;查看属于哪个裸设备。group 1属于/dev/raw/raw10、group 2属于…

渗透技巧——利用netsh抓取连接文件服务器的NTLMv2 Hash

0x00 前言 在上篇文章《Windows下的密码hash——NTLM hash和Net-NTLM hash介绍》比较了NTLM hash和Net-NTLM hash的区别,本文将继续对Net-NTLM hash在内网渗透中的应用作介绍,解决一个有趣的问题: 如果获得了内网一个文件服务器的权限&#…

第十节: 利用SQLServer实现Quartz的持久化和双机热备的集群模式 :

背景: 默认情况下,Quartz.Net作业是持久化在内存中的,即 quartz.jobStore.type "Quartz.Simpl.RAMJobStore, Quartz",这种模式有以下弊端: ① 想在A服务器上控制B服务器上已经发布了的job和trigger不方便&a…