0

画像のレンダリング時間を短縮し、Apache リクエストを減らすために、mongodb gridfs をデプロイしました。大きなサイズの画像について、ブラウザで表示する方法を明確にする必要がありますか?.

実際、mongodb gridfsに保存するために、単一の画像とサイズが40MBを超えています。次のコマンドを使用して保存されます。しかし、ブラウザで40MBの画像をブラウザで表示することはできません。ブラウザで画像をストリーミングするにはどうすればよいですか? . Plsは私たちを助けます。

コマンド:

ステップ1:

./mongofiles -d myfiles put /home/bharat/bin/cron/"CT0072 Madagascar Cartoon Characters .jpg"
connected to: 127.0.0.1
added file: { _id: ObjectId('512606b93f15f684e8271aee'), filename: "/home/bharat/bin/cron/CT0072 Madagascar Cartoon Characters .jpg", chunkSize: 262144, uploadDate: new Date(1361446588575), md5: "ab3e9d6a6f01f87e28f76148824a6d4b", length: 20020718 }
done!

ステップ2:

./mongofiles -d myfiles list
connected to: 127.0.0.1
/home/bharat/bin/cron/CT0072 Madagascar Cartoon Characters .jpg 20020718

ステップ 3:

./mongo
MongoDB shell version: 1.8.2
> show tables;
fs.chunks
fs.files
system.indexes
> db.fs.chunks.count();
77

ステップ 4: PHP ファイルの書き込み

**Program 1** - Its showing image below 10MB file. But 40MB file is not showing in Chrome Browse but Firefox showing and taking more time to display.

$mongo = new Mongo("128.181.10.28:27017");
$db = $mongo->myfiles;
$gridFS = $db->getGridFS();
$image = $gridFS->findOne("/home/bharat/bin/cron/tomas-hurricane.jpg");
$filedata = $image->getBytes();
header("Content-Length: " . strlen($filedata));
header("Content-Type: image/jpeg");
ob_clean();
echo($filedata);

**Program 2** : Tried second program but not working.

Tried 2nd Program
$mongo = new Mongo("128.181.10.28:27017");
$db = $mongo->myfiles;
$gridFS = $db->getGridFS();
$image = $gridFS->findOne("/home/bharat/bin/cron/tomas-hurricane.jpg");
header("Content-Type: image/jpeg");
$stream = $image->getResource();
while (!feof($stream)) {
    echo fread($stream, 8192);
}
  • クマラン
4

1 に答える 1

0

まず、特に IE を使用している場合、ブラウザで表示するには 40 MB は非常に大きいです。画像を小さくしてみてください。

次に、ここで指摘したように、画像を取得する優れた方法である MongoDB REST API を使用できます。

于 2013-03-12T19:00:26.753 に答える