2013-07-10 44 views
0

我有一個問題:我想從我的iOS應用程序發送圖片到PHP腳本在MySQL數據庫中插入這一形象。圖像的mysql數據庫中的字段是LONGBLOB。正在發送的圖像是_photoImageView.image 我在Xcode中創建的方法如下:從iOS應用發送圖片PHP腳本MySQL數據庫

NSData *dataForImage = UIImagePNGRepresentation(_photoImageView.image); 


    NSMutableString *strURL = [NSMutableString stringWithFormat:@"http://localhost/myfff/join.php?username=%@&password=%@&photo=%@",_txtUsername.text,_txtPassword.text, dataForImage]; 
[strURL setString:[strURL stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]]; 
NSMutableURLRequest *request = [[NSMutableURLRequest alloc] initWithURL:[NSURL URLWithString:strURL]]; 
[request setHTTPMethod:@"POST"]; 
postConnection = [[NSURLConnection alloc] initWithRequest:request delegate:self startImmediately:YES]; 

在患部的PHP腳本,我這樣做:

$data = addslashes(fread(fopen($_FILES[photo], "rb"))); $query = "INSERT INTO mytb VALUES (' ','$username','$password'','$data')"; 

插入不沒有發生..我錯在哪裏?請幫幫我!

+0

您需要調試此一塊一塊的。作爲十首發,試圖使用'HTTP:// localhost'作爲目標網址中的iOS是行不通的,爲localhost實際上將手機本身。此外,將圖像編碼爲GET請求將不起作用,除非圖像非常非常小。 –

+1

我在iphone模擬器上進行測試,所以它可以和localhost一起使用,事實上如果我運行沒有圖像部分的腳本,就會發生插入。 – Joker

回答

1

如果您正在獲取其他發佈的數據在您的PHP腳本,即用戶名&密碼,然後問題是,你不會在$_FILES陣列中獲取數據,因爲你共享的Xcode不會將數據上傳爲表單(multipart/form-data ),而不是它的發佈的數據(我相信),所以我想你會在$_POST['photo']越來越原始圖像數據和查詢應該是:

$data = $_POST['photo'];

$query = "INSERT INTO mytb VALUES (' ','$username','$password'','$data')";

即使你在照片10則仍使用你做錯事到fread它應該是:

$data = addslashes(fread(fopen($_FILES['photo']['tmp_name'], "rb")));

+1

那又如何?你能幫我做PHP中的正確方法發送的照片,甚至腳本?請 – Joker

+0

你檢查'$ _ POST [ '照片'];'?你在那裏獲取原始照片數據嗎? –

+1

是的,我設置了$ _POST ['photo'],但它沒有插入任何東西 – Joker