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' ); //寫入文件中!
相關文章
相關標籤/搜索