将MySQL中等blob传递给IOS NSData \ UIImage

时间:2013-04-15 08:12:16

标签: php mysql objective-c blob

在我的PHP中,我想要发送一个包含数据库数据的数组。应该接受所有值,因为NSString会在数据库中存储一个存储为“中等blob”的图像,并且我正在尝试传递它的NSData \ UIImage值。

while ($row = mysql_fetch_array($result)) {

    $add = array(); 
    $add["Id"] = $row["Id"]; 
    $add["Mail"] = $row["Mail"];
    $add["Category"] = $row["Category"]; 
    $add["Phone"] = $row["Phone"]; 
    $add["Msgs"] = $row["Msgs"];
    //image from blob
    $add["Picture"] = $row["Picture"];

    // push single add into final response array 
    array_push($response["adds"], $add); 
} 
// success 
$response["success"] = 1; 
$response["message"] = "Adds loaded successfully";
// echoing JSON response 
echo json_encode($response); 

现在在Xcode中,除了图像为NULL之外,所有值都接收得很好。我尝试用PHP中的base64编码并在Objective-C中解码,但xcode崩溃,因为它仍然是NULL。我试着定义:

header("Content-type: image/png");

file_put_contents("image.png", $add["Picture"]);

但它总是收到NULL。没有存储blob的行返回为'',只有内容返回NULL的行。我是PHP的新手,我确信我正在做一些基本的愚​​蠢错误。

BTW我的Objective-C代码是:

const void *bytes = [[addPicture objectAtIndex:indexPath.row] bytes];
int length = [[addPicture objectAtIndex:indexPath.row] length];
NSData* imageData = [[NSData alloc] initWithBytes:bytes length:length];
aCell.cellBackImg.image = [UIImage imageWithData:imageData];

0 个答案:

没有答案