文档章节

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

RablePHP
 RablePHP
发布于 2014/11/28 12:47
字数 615
阅读 8487
收藏 5

【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进制转换成二进制
    
     PublicClass::CacheData('','/upload/',$byte,'.jpg');//写入文件中!

【2016-5-28】

第二种方式!2016-5-28代码    当然!第二种方式,是最新的方式!【Base64方式解码写出文件】

$path 		=	C('APP_HEADIMG_PATH'); //服务器相对路径
			$rel_path 	=	ROOT_PATH.$path;//服务器绝对路径
			$suffix 	=	C('suffix');
			$picname 	=	'uid_'.$this->param['user_id'];//图片名称
			$filename 	=	$rel_path.$picname.$suffix;//图片生成绝对路径
			$server_path=	$_SERVER["HTTP_HOST"].'/'.$path.$picname.$suffix;

			if(!file_exists($rel_path)){
				mkdir($rel_path,0777,true);
			}
			
			file_put_contents($filename,base64_decode($this->param['head']));//写出文件到服务器

 

 

【作者:如果觉得我写的不错。请收藏我!关注我!】

© 著作权归作者所有

RablePHP
粉丝 15
博文 47
码字总数 11895
作品 0
巴南
程序员
私信 提问
加载中

评论(3)

RablePHP
RablePHP 博主

引用来自“星辰6666”的评论

你好,我遇到跟你一样的问题,PublicClass::CacheData('','/upload/',$byte,'.jpg');//写入文件中!这个方法是你自己封的吗?您现在能给我一份直接能用的接口代码吗?也是ios客户端传过来图片,php写接口传服务器。谢谢谢谢啦,方便的话发邮箱吧544320493@qq.com
重点函数 base64_decode()
RablePHP
RablePHP 博主

引用来自“星辰6666”的评论

你好,我遇到跟你一样的问题,PublicClass::CacheData('','/upload/',$byte,'.jpg');//写入文件中!这个方法是你自己封的吗?您现在能给我一份直接能用的接口代码吗?也是ios客户端传过来图片,php写接口传服务器。谢谢谢谢啦,方便的话发邮箱吧544320493@qq.com
那个是以前的接口了。现在用这个方式,可以接受IOS上传图片。PHP服务器直接这样做就OK 我已经修改了文章,看第二段
星辰6666
你好,我遇到跟你一样的问题,PublicClass::CacheData('','/upload/',$byte,'.jpg');//写入文件中!这个方法是你自己封的吗?您现在能给我一份直接能用的接口代码吗?也是ios客户端传过来图片,php写接口传服务器。谢谢谢谢啦,方便的话发邮箱吧544320493@qq.com
IOS提交给PHP服务器数据 NSData 请问,PHP怎么弄成图片

IOS上传图片。他将图片的NSData直接提交给我PHP。我这边接收到的数据是: ffd8ffe0 00104a46 49460001 01010048 请问,我要怎么把这个转成图片。保存在服务器上!...

RablePHP
2014/11/27
266
1
resin在哪里设置post长度

今天做与ios对接上传图片,ios那边把图片转为base64传过来,我这边接收后转换后显示错误,调试发现,接收只接收了一小半数据,在网上查了半天,说web容器那边可能有限制post数据的地方,有没有...

ForTheFree
2014/06/03
850
2
IOS那边从上传个图片到服务器(php),php怎么获取图片????

ipone从相册上传一个照片给 php, php怎么接收?用什么函数接收?目前只能获取IOS那边post过来的字符串,但是图片不知道怎么获取?我的意思是或者图片,然后存到文件夹,再将该图片路径存入数据库...

开源人事
2012/11/28
11.6K
5
ReactNative IOS模块

[背景] 目前已经开发好相同功能的android版本,本人不会ios开发,无从下手 [需求] 1、语音录制模块 功能需求:语音(开始、停止、试听)、压缩后上传到指定服务器 接收标准: a、IOS端原生模...

孟凯
2016/05/22
1
0
关于“发送原图”功能问题的记录

本文主要记录一个bug从发现、定位到延期解决的过程。文末添加了已踩过的坑 近期在做“发送原图”功能的时候,遇到一个bug:在Android、Windows、Mac 客户端发送原图,iOS客户端接收,保存原图...

si1ence
2018/10/24
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Qt编写自定义控件32-等待进度条控件

一、前言 在各种各样的执行任务界面,有时候需要比较多的时间,需要给出一个直观的等待进度条表示当前正在执行的进度,而不至于懵逼在那里,用户不会觉得程序死了还是干嘛了。 等待进度条有好...

飞扬青云
8分钟前
2
0
Packagist / Composer 中国全量镜像

还没安装 Composer 吗?请往下看如何安装 Composer 。 镜像用法 有两种方式启用本镜像服务: 系统全局配置: 即将配置信息添加到 Composer 的全局配置文件 config.json 中。见“方法一” 单个...

mdoo
8分钟前
1
0
mnist文件格式说明

根据官网 http://yann.lecun.com/exdb/mnist/ 的文件格式的定义 TRAINING SET LABEL FILE (train-labels-idx1-ubyte): [offset] [type] [value] [description] 0000 32 bit integer 0x00000......

冷基
26分钟前
2
0
DNS域名解析命令 —— host

命令host 用途: 使用域名服务器查询主机名字 语法: ]# host [选项] 主机名 [服务器] 常用选项: -t 指定查询的域名信息类型 A CERT DNAME IPSECKEY MX N...

迷失De挣扎
43分钟前
3
0
Ubuntu tty中文字符乱码

默认的tty只能显示一个字节,我们可以用setfont命令去改tty字体,但仅仅局限在一个字节内,不支持UTF-8多字节,所以我们就没办法使用汉字。但是我们可以使用FbTerm啊!FbTerm是支持中文显示的...

mbzhong
今天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部