文档章节

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

RablePHP
 RablePHP
发布于 2014/11/28 12:47
字数 615
阅读 8565
收藏 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
326
1
resin在哪里设置post长度

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

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

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

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

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

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

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

si1ence
2018/10/24
0
0

没有更多内容

加载失败,请刷新页面

加载更多

前端面试题汇总

一. HTML常见的兼容性 1.HTML5 标签在低版本浏览器不兼容 解决办法:使用html5shiv库,引入下列语句 <!--[if lte IE 8]> <script src="https://cdn.bootcss.com/html5shiv/r29/html5.js"></sc......

蓝小驴
19分钟前
3
0
OSChina 周四乱弹 —— 我气的脸都黑了!

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 小小编辑推荐《Red Battle》- 高橋李依 / 豊崎愛生 《Red Battle》- 高橋李依 / 豊崎愛生 手机党少年们想听歌,请使劲儿戳(这里) @丶Lion ...

小小编辑
32分钟前
387
19
找OSG教程, B站就有

https://www.bilibili.com/video/av64849038?from=search&seid=11632913960900279653

洛克人杰洛
54分钟前
4
0
学习记录(day07-Vue组件、自定义属性、自定义事件)

[TOC] 1.1.1什么是组件 一个vue文件就是一个组件 组件将html标签/css样式/对应JS打包成一个整体,也可以理解钻进一个具有样式和特效的自定义标签。 一、编写组件(提供方)<template> <di...

庭前云落
59分钟前
4
0
使用Prometheus监控SpringBoot应用

通过之前的文章我们使用Prometheus监控了应用服务器node_exporter,数据库mysqld_exporter,今天我们来监控一下你的应用。(本文以SpringBoot 2.1.9.RELEASE 作为监控目标) 编码 添加依赖 使...

JAVA日知录
今天
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部