【IOS 接收PHP 圖片】php
1,PHP將圖片的URL直接返回給IOS端便可,IOS獲取到URL處理,下載緩存就能夠在APP端使用了。編程
【IOS上傳圖片PHP接收】緩存
一、IOS上傳圖片可能有不少方法,今天做者我用了這種方法,經過IOS 提交NSData 數據,PHP接收而且處理後生成圖片。服務器
不少人會問,NSData 傳過來是這樣的:app
<ffd8ffe0 00104a46 49460001>
那麼問題來了:這是什麼數據類型?函數
答:」我開始也這麼問,可是通過我查詢了1天的資料,瞭解,他是16進制的編碼,其實編程人員一看就知道。0-F,16進制編碼,ui
可是我有點不太確定,因此仍是想去確認一下。搜索了1天的資料後,終於認同了。16進制的「this
二、16進制,咱們是不能直接寫成圖片的?編碼
對啊,咱們得將16進制轉換成二進制,纔可以寫出去,再途中,不要複製出來。由於數據類型一旦複製到了TXT中。再進行,就有可能出錯。編碼這個問題。我是比較煩。spa
三、咱們須要的就是查詢本身語言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']));//寫出文件到服務器
【做者:若是以爲我寫的不錯。請收藏我!關注我!】