因为我的英语能力不足,
请事先确认
使用MongoDB(GridFS)带来了图像。
$bucket = $this->mDB->selectGridFSBucket([
'bucketName' => $collection,
'readPreference' => new MongoDB\Driver\ReadPreference(MongoDB\Driver\ReadPreference::RP_SECONDARY),
]);
$stream = $bucket->openDownloadStream($id);
$im = stream_get_contents ( $stream );
header('Content-Type: image/png');
echo $im;
示例:https://docs.mongodb.com/php-library/v1.2/tutorial/gridfs/
但是,很难将其输出为图像。
我该怎么办?
答案 0 :(得分:0)
完全未经测试,但是考虑到图像中显示的数据的性质,您可以尝试使用imagecreatefromstring
-类似以下内容:
$bucket = $this->mDB->selectGridFSBucket([
'bucketName' => $collection,
'readPreference' => new MongoDB\Driver\ReadPreference( MongoDB\Driver\ReadPreference::RP_SECONDARY ),
]);
$stream = $bucket->openDownloadStream( $id );
$im = imagecreatefromstring( stream_get_contents ( $stream ) ) ;
if( $im ){
header( 'Content-Type: image/png' );
imagepng( $im );
imagedestroy( $im );
}
您可以在流数据上尝试base64_decode
(我真的不知道流的内容是什么)
$im = imagecreatefromstring( base64_decode( stream_get_contents ( $stream ) ) );
if( $im ){
header( 'Content-Type: image/png' );
imagepng( $im );
imagedestroy( $im );
}