我已经设置了HBase并尝试使用Thrift-Php上传图像然后显示它。我有一个表有一个名为info的列族,并使用了类似的东西:
$tmpName=$_FILES["file"]["tmp_name"];
$fp = fopen($tmpName, 'r');
$data = fread($fp, filesize($tmpName));
$data = addslashes($data);
fclose($fp);
try {
$mutations = array(
new Mutation( array(
'column' => 'info:pic',
'value' => $data
) ),
);
$client->mutateRow( $t, $username, $mutations );
} catch ( IOError $e ) {
echo( "expected error: {$e->message}\n" );
}
这似乎有用,因为它在Hbase中存储了一些内容然后
$arr = $client->getRow($t, $username);
foreach ( $arr as $k=>$TRowResult ) {
$values = $TRowResult->columns;
asort( $values );
foreach ( $values as $k=>$v ) {
$usr= $v->value;
$content=$_GET['username'];
header('Content-type: image/jpg');
echo $usr;
}
}
但是我收到一条错误消息,指出图片包含错误。有人可以在Php中提供一个例子吗? 谢谢。
答案 0 :(得分:0)
我认为,您的问题是您在存储数据时使用$data = addslashes($data);
。将字符存储到HBase时无需引用字符。
而且,你可以检索这样的数据:
$values = $TRowResult->columns;
$usr= $values['info:pic']->value;
$content=$_GET['username'];
header('Content-type: image/jpg');
echo $usr;