PHP POST接收處理 IOS上傳NSData圖片數據,上傳圖片到服務器


【IOS 接收PHP 圖片】

1,PHP將圖片的URL直接返回給IOS端即可,IOS獲取到URL處理,下載緩存就可以在APP端使用了。

 

【IOS上傳圖片PHP接收】

1、IOS上傳圖片可能有很多方法,今天作者我用了這種方法,通過IOS 提交NSData 數據,PHP接收並且處理后生成圖片。

很多人會問,NSData 傳過來是這樣的:

?
1
<ffd8ffe0 00104a46  49460001 >

那么問題來了:這是什么數據類型?

答:”我開始也這么問,但是經過我查詢了1天的資料,了解,他是16進制的編碼,其實編程人員一看就知道。0-F,16進制編碼,

但是我有點不太肯定,所以還是想去確認一下。搜索了1天的資料后,終於認同了。16進制的“

2、16進制,我們是不能直接寫成圖片的?

對啊,我們得將16進制轉換成二進制,才能夠寫出去,再途中,不要復制出來。因為數據類型一旦復制到了TXT中。再進行,就有可能出錯。編碼這個問題。我是比較煩。

3、我們需要的就是查詢自己語言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' ); //寫入文件中!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM