PHP操作MongoDB GridFS 存储文件
生活随笔
收集整理的這篇文章主要介紹了
PHP操作MongoDB GridFS 存储文件
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
PHP操作MongoDB GridFS 存儲文件,如圖片文件
?我的測試代碼:
1、前端上傳文件html index.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>Mongo Gridfs</title></head><body><form action="upload.php" method="post" enctype="multipart/form-data"><label for="upfile" >上傳圖片</label><input type="file" id="upfile" name="upfile" /><input type="submit" /> </form></body></html>2、上傳文件進入MongoDB數(shù)據(jù)庫并返回圖片的索引ID upload.php
<?php //上傳圖片到 header("Content-type:text/html;charset=utf-8"); // 連接Mongo并初始化GFS // 數(shù)據(jù)庫命名 picDB;集合命名pic_userid $conn = new MongoClient(); $db = $conn->picDB; // 取得gridfs對象 $prefix = 'pic'; $collection = $db->getGridFS($prefix);// 上傳圖片 if(isset($_FILES['upfile'])){ $id = $collection->storeUpload('upfile');$id = strval($id);echo "<p>圖片路徑為:<font color=red>http://{$_SERVER['HTTP_HOST']}/image.php?id={$id}</font></p>"; } ?>3、根據(jù)圖片ID直接從MongoDB里面獲取圖片資源并顯示 image.php
<?php // 根據(jù)ID索引值將圖片資源取出來,即圖片二進制數(shù)據(jù) $conn = new Mongo(); $db = $conn->picDB; // 取得gridfs對象 $prefix = 'pic'; $collection = $db->getGridFS($prefix);$id = $_GET['id'];$object = $collection->findOne(array('_id' => new MongoId($id))); header('Content-type:image/jpg'); echo $object->getBytes();?>改進:
在upload.php里面萬一根據(jù)ID無法取出數(shù)據(jù)!應該做出提示。
在image.php里面應該添加異常處理,如果取出的數(shù)據(jù)格式不是image而是其他格式!要提前判斷type。
最后,要在MongoDB的使用中添加授權使用,因為mongo默認是非授權使用的,也就是訪問數(shù)據(jù)庫時不需要提供用戶名和密碼。
?
轉載于:https://www.cnblogs.com/wingjay/p/3950125.html
總結
以上是生活随笔為你收集整理的PHP操作MongoDB GridFS 存储文件的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: POJ 3928 amp; HDU 24
- 下一篇: PHP 魔术方法__set() __ge