PHP POST接收处理 IOS上传NSData图片数据,上传图片到服务器

【IOS 接收PHP 图片】php

1,PHP将图片的URL直接返回给IOS端便可,IOS获取到URL处理,下载缓存就能够在APP端使用了。java

 

【IOS上传图片PHP接收】编程

一、IOS上传图片可能有不少方法,今天做者我用了这种方法,经过IOS 提交NSData 数据,PHP接收而且处理后生成图片。缓存

不少人会问,NSData 传过来是这样的:app

?
1
<ffd8ffe0 00104a46  49460001 >

那么问题来了:这是什么数据类型?函数

答:”我开始也这么问,可是通过我查询了1天的资料,了解,他是16进制的编码,其实编程人员一看就知道。0-F,16进制编码,编码

可是我有点不太确定,因此仍是想去确认一下。搜索了1天的资料后,终于认同了。16进制的“spa

二、16进制,咱们是不能直接写成图片的?.net

对啊,咱们得将16进制转换成二进制,才可以写出去,再途中,不要复制出来。由于数据类型一旦复制到了TXT中。再进行,就有可能出错。编码这个问题。我是比较烦。code

三、咱们须要的就是查询本身语言16进制转成二进制的方法。

PHP中。有个方法。能够转成咱们须要的二进制。方法详细查询去W3C pack()函数详细说明 

?
1
  $ byte =pack( "H*" ,$ byte );

 而后经过PHP写出文件就能够了。保存格式确定是"png  jpg 等图片格式";

注意:

?
1
<ffd8ffe0 00104a46  49460001 >

这个是NSData,  咱们须要处理成:ffd8ffe000104a4649460001  而后进行转码

?
1
2
3
4
5
6
7
8
9
      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进制转换成二进制
     
      PublicClass::CacheData( '' , '/upload/' ,$ byte , '.jpg' ); //写入文件中!
相关文章
相关标签/搜索