因此,我使用HTTP POST通過互聯網發送圖像並將其發送到我的服務器上的php腳本。我希望能夠拍攝並保存該圖像。我對文本做得很好,但是當涉及到其他內容時,例如圖像,錯誤地說它找不到變量,當我嘗試file_get_contents
時,它也不喜歡這樣。我也從iPhone發送圖像,所以我的POST請求看起來像這樣。使用PHP從HTTP POST獲取圖像
NSMutableData *postBody = [NSMutableData data];
[postBody appendData:[[NSString stringWithFormat:@"--%@\r\n", stringBoundary] dataUsingEncoding:NSUTF8StringEncoding]];
[postBody appendData:[@"Content-Disposition: form-data; name=\"media\"; filename=\"dummy.jpg\"\r\n" dataUsingEncoding:NSUTF8StringEncoding]];
[postBody appendData:[@"Content-Type: image/jpeg\r\n" dataUsingEncoding:NSUTF8StringEncoding]];
[postBody appendData:[@"Content-Transfer-Encoding: binary\r\n\r\n" dataUsingEncoding:NSUTF8StringEncoding]];
[postBody appendData:imageData];
[postBody appendData:[@"\r\n" dataUsingEncoding:NSUTF8StringEncoding]];
[postBody appendData:[[NSString stringWithFormat:@"--%@--\r\n", stringBoundary] dataUsingEncoding:NSUTF8StringEncoding]];
[postRequest setHTTPBody:postBody];
請求的其餘部分寫的,但我真的不覺得自己發佈這一切。
但無論如何,這就是我正在發送請求,並在PHP的服務器端,
<?php
echo "Some Message";
$nameValue = $_POST['name'];
echo "<br/>";
echo $nameValue;
$otherValue = $_POST['other'];
echo "<br/>";
echo $otherValue;
file_get_contents('dummy.jpg');
// or I tried this
$imageData = $_POST['media'];
?>
我似乎無法能夠抓取圖像。這兩個嘗試獲取圖像失敗,我不知道爲什麼。有什麼建議麼?
編輯:
我加入了打印語句print_r($_FILES)
,看看有什麼我會得到它返回以下。
(
[media] => Array
(
[name] => dummy.jpg
[type] =>
[tmp_name] =>
[error] => 1
[size] => 0
)
)
如此看來,如果它越來越像,它至少這個名字,但由於某種原因,沒有得到實際的數據,並拋出一些錯誤。我想這可能是在iPhone的一面,如果它不發送數據,我的PHP服務器發現錯誤。我不確定,任何人都會遇到這樣的事情?
編輯2:
我終於得到了一切工作。事實證明,一切都格式正確我只是有一個文件圖像大小上傳限制問題。我發送的圖像大約是8MB,顯然我們的服務器無法處理,所以我只是降低了jpeg的質量,而這個問題就解決了。然後有一些權限問題,以及sudo chmod
無法修復的一點點。感謝大家的建議和幫助,我希望我可以接受多個答案!
好了,好吧,我通過簡單地降低了正在上傳的圖像的質量來解決整個文件大小問題,現在我只需要通過文件讀寫權限問題 – MZimmerman6 2012-08-09 14:53:06
好的。我看到你可能需要進一步閱讀如何處理文件上傳與PHP。所以我編輯ny回答一些更多的信息 – Jojo 2012-08-09 15:06:50
非常感謝!我已經使用HTTP POST方法成功將圖像從iPhone上獲取到我的計算機上。我還能夠通過目錄和所有這些方式正確地移動圖像,所以一切都應該很好。再次感謝! – MZimmerman6 2012-08-09 15:23:52