【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'
);
//寫入文件中!
|