2011-06-01 32 views
-2

EDIT重寫的問題:閱讀在PHP腳本發送的iPhone上的圖像

我使用下面的方式從服務器中加載圖像。

NSURL *url = [NSURL urlWithString:@"http://www.example.de/getImage.php"]; 
NSData *data = [[NSData alloc] initWithContentsOfURL:url]; 
UIImage *im = [UIImage imageWithData:data]; 
imageView.image = im; 

php腳本與線

$image = file_get_contents($direction); 
echo $image; 

一切工作到此結束。我欣賞這個形象。 現在我想接收服務器的兩個對象,並試圖改變輕微腳本:

echo array(0=>$image , 1=> $intValue); 

我想現在就閱讀該數據幾個小時,鴕鳥政策得到的結果。 爲什麼doesn't這個嘗試?:工作

NSArray *arr = [[NSArray alloc] initWithContentsOfURL:url]; 
UIImage *im = [UIImage imageWithData:[arr objectAtIndex:0]]; 

在調試時,我用的NSLog來獲得圖像的描述,它是(空)。

沒有錯字或編譯或語法錯誤......

EDIT001: 好,我知道了,現在也許有點矯枉過正,但我​​試過的方式是不可能在我看來。 我再次使用json_encode和BASE64_ENCODE這樣的:

echo json_encode(array('a'=>base64_encode($image), 'b'=>$anotherObject)); 

在iphone端我使用了一些框架,再解碼JSON和Base64和它的作品... 謝謝你,如果你有關於這個問題,把它們寫下來

+0

也許是一個錯字,但'* UIImage的IM = [[UIImage的imageWithData:[ARR objectAtIndex:0];'有三個'['但只一個']' – horatio 2011-06-01 15:05:04

+0

sry ...進入快速。 everthing編譯完美,它運行...但圖像不能被讀取... – 2011-06-01 15:11:22

+0

file_get_contents('$ direction');不可能是正確的。應該是(「$方向」)或只是($方向)。 – Flipper 2011-06-01 15:12:37

回答

0

從「json_encode」 PHP手冊頁:

Can be any type except a resource. This function only works with UTF-8 encoded data

或許將圖像作爲一個單獨的HTTP GET請求,這樣你就不必擔心圖像數據的編碼/ JSON解析。

+0

我編輯了這個問題後,它沒有json_encode ...現在,謝謝你的提示! – 2011-06-01 15:01:12

+0

可能一個base64編碼的圖像數據,所以它可以用於json_encode? – horatio 2011-06-01 15:34:23

+0

是的,我也想到了base64的東西,但是我知道iOS中並沒有內置的base64解碼功能。並不是說它很複雜,並且有很多用於base64解碼的示例代碼。從url請求中獲取NSData可能很容易,並且從中加載圖像,除非您真的需要將它全部放入一個請求和json響應中。 – 2011-06-01 23:28:04

0

$image = file_get_contents('$direction'); echo $image;

如果這是你的文字的PHP代碼,你應該得到一個錯誤:「$方向」是文字字符串「$方向」。我無法想象你真的有一個叫做$方向的文件。不應該有必要放在引號中的變量:

echo file_get_contents($direction); 
+0

是的,我已經得到了我的錯字... SORRY guys !! ...但是它不會和echo $圖像一起工作。重點是:第一個方案適用於回顯圖像,而socond不迴應php數組!必須有一個錯誤 – 2011-06-01 15:18:26