php接口 接受ios或android端图片; php接收NSData数据

备注下,

【自己无意中用的方法】接收时,设置两个参数,一个是图片名称,另一个是实际文件。然后用$_FILES处理就可以了。

如: $icon = $_POST['icon'];//这个是图片的名称,用于$_FILES数组的处理

  $iconfile = $_POST['iconfile'];//用于实际接收图片文件,只要接受过来就可以,这个变量$iconfile之后并没有用处,用$icon处理就可以了

====================================================================================

 网上有个方法,在查询socket,查询php 如何接收ios NSData时看到的。

【IOS 接收PHP 图片】
1,PHP将图片的URL直接返回给IOS端即可,IOS获取到URL处理,下载缓存就可以在APP端使用了。
 
【IOS上传图片PHP接收】
1、IOS上传图片可能有很多方法,今天作者我用了这种方法,通过IOS 提交NSData 数据,PHP接收并且处理后生成图片。
很多人会问,NSData 传过来是这样的:<ffd8ffe0 00104a46 49460001> 
那么问题来了:这是什么数据类型?
答:”我开始也这么问,但是经过我查询了1天的资料,了解,他是16进制的编码,其实编程人员一看就知道。0-F,16进制编码,
但是我有点不太肯定,所以还是想去确认一下。搜索了1天的资料后,终于认同了。16进制的“
2、16进制,我们是不能直接写成图片的?‍
对啊,我们得将16进制转换成二进制,才能够写出去,再途中,不要复制出来。因为数据类型一旦复制到了TXT中。再进行,就有可能出错。编码这个问题。我是比较烦。
3、我们需要的就是查询自己语言16进制转成二进制的方法。
PHP中。有个方法。可以转成我们需要的二进制。方法详细查询去W3C pack()函数详细说明
$byte=pack("H*",$byte); 
然后通过PHP写出文件就可以了。保存格式肯定是"png  jpg 等图片格式";
注意:<ffd8ffe0 00104a46 49460001> 这个是NSData,  我们需要处理成:ffd8ffe000104a4649460001  然后进行转码
复制代码
header("Content-Type: application/octet-stream");
$byte=$_POST['test']; 
$byte = str_replace(' ','',$byte);   //处理数据
$byte = str_ireplace("<",'',$byte);
$byte = str_ireplace(">",'',$byte); 
$byte=pack("H*",$byte);      //16进制转换成二进制
file_put_contents('1.jpg',$byte)//写入文件中!  
复制代码

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值