簡體   English   中英

使用php在MongoDB中未顯示圖像

[英]Image not displaying in MongoDB using php

我是MongoDB和php中的一個新手,我的問題是我的位置數據庫中存儲的圖像沒有顯示。 我有一個測試代碼,可以插入所有數據,包括圖像名稱。 該圖像名稱將用於訪問存儲在同一數據庫中的圖像。

這是我的插入數據代碼

 <?php
try {
    // open connection to MongoDB server

    $conn = new Mongo('localhost');

    //access database

    $db = $conn->location;

    //access collection
    $collection = $db->loc;

    // insert a new document
    $filename = "102120140913290.jpg";
    $data = array(
        'name' => 'Butuan',
        'latitude'=> 8.9576751,
        'longitude' => 125.5963283,
        'imagename' => $filename
        );

    $collection->insert($data);
    echo 'Inserted document withy ID:' . $data['_id'] . '<br/>';

    $img = $db->getGridFS();
    $path = "C:\\xampp\\htdocs\\mysite\\upload\\";


    $storedfile =   $img->storeFile($path . $filename,
             array("metadata" => array("filename" => $filename),
             "filename" => $filename));

    echo 'Stored file ID:' . $storedfile;

} catch (MongoConnectionException $e) {
  die('Error connecting to MongoDB server');
} catch (MongoException $e) {
  die('Error: ' . $e->getMessage());
}

?>

這是我得到的圖像代碼

<?php

    try{

        $conn = new Mongo('localhost');
        $db = $conn->location;
        $collection = $db->loc;

        $cursor = $collection->find();
        $imgname;
        echo $cursor->count(). 'document(s) found. <br/>';

        foreach($cursor as $obj){
            $imgname = $obj['imagename'];
        }


        $gridFS = $db->getGridFS();
        $image = $gridFS->findOne($imgname);

        header('Content-type: image/jpeg');
        echo $image->getBytes();

    } catch (MongoConnectionException $e) {
      die('Error connecting to MongoDB server');
    } catch (MongoException $e) {
      die('Error: ' . $e->getMessage());
    }

    ?>

我得到的只是一張破碎的圖像。 請幫助..謝謝

只是檢查幾件事

您應該使用“新的MongoClient”,因為已經描述了“新的Mongo”。

嘗試替換以下代碼段:

$gridFS = $db->getGridFS();
$image = $gridFS->findOne($imgname);
$imageFile = $image->getBytes();

header('Content-type: image/jpeg');
header("Content-Length: " . strlen($imageFile));
ob_clean();
echo $imageFile;

還要看看storeUpload函數http://php.net/manual/en/mongogridfs.storeupload.php

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM