عرض الصورة في php من سلسلة بايت

0

لأن لغتي الإنجليزية كانت غير كافية ،

يرجى الاعتراف بذلك مسبقا

باستخدام 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/

ومع ذلك ، من الصعب إخراج هذا كصورة.

ماذا يجب أن أفعل؟

إزالة الرأس ("نوع المحتوى: image / png")

إضافة رأس ('نوع المحتوى: image / png')

1 إجابة

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 );
}
:مؤلف

أسئلة ذات صلة

فوق
قائمة طعام