在我的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];