2017-01-01 78 views
0

我在php中获得了与mongodb的连接。我可以从MongoDB获取文件名,并成功显示在网页中。但是,我无法获得文件追索权。如果我错了,请提醒我。非常感谢你。 我想从mongodb中获取原始文件。我有MongoDB的PHP驱动程序。有人可以指导我? plz ..如何通过php播放mongodb中的ogg文件

<?php 
try{ 
    $connection = new Menter code hereongoClient(); 
    $db = $connection->FypDatabase; 
    $grid = $db->getGridFS(); 
    $data = $grid->find(); 
    foreach($data as $obj){ 
     echo $obj->getFilename().'<br/>'; 
     echo $obj->getSize(); 
     echo $obj->getResource(); //it output the Resource id #2 
     echo '<video id="video" autoplay="autoplay" width="640" height="480" preload="metadata" >'; 
     echo '<source src="'.$data->getResource().'"/>'; 
     echo '<code>your bowser don\'t support</code>'; 
     echo '</video>'; 
    } 
    exit; 
    $connection->close(); 
    } catch (MongoConnectionException $e) { 
     die('Error connecting to MongoDB server'); 
    } catch (MongoException $e) { 
     die('Error: ' . $e->getMessage()); 
    } 
?> 

我想播放视频标签中的视频。并从mongodb获取视频资源。在我的MongoDB中,我有fs.chunks和fs.files集合。我做一下GridFS的驱动程序,PHP一些研究,它说,

MongoGridFSFile::getResource — Returns a resource that can be used to read the stored file

getResource() method

回答

0

也许一个错字:$ obj->的getResource()而不是$数据 - > getResource()方法

<?php 
try{ 
$connection=new MongoClient(); 
$db=$connection->FypDatabase; 
$grid=$db->getGridFS(); 
$data=$grid->find(); 
    foreach($data as $obj){ 
    echo $obj->getFilename().'<br/>'; 
    echo $obj->getSize(); 
    echo $obj->getResource(); //it output the Resource id #2 
    echo '<video id="video" autoplay="autoplay" width="640" height="480" preload="metadata" >'; 
    echo '<source src="'.$obj->current().'"/>'; 
    echo '<code>your bowser don\'t support</code>'; 
    echo '</video>'; 
    } 
     exit; 
     $connection->close(); 
} catch (MongoConnectionException $e) { 
    die('Error connecting to MongoDB server'); 
} catch (MongoException $e) { 
    die('Error: ' . $e->getMessage()); 
} 
?> 
+0

我将它更改为$ data-> getResource(),但它流了[致命错误:调用未定义的方法MongoGridFSCursor :: getResource()在C:\ wamp64 \ www \ testStream \ testStream.php在线]异常。 – rcm

+0

尝试$ obj-> current() –

+0

对不起,麻烦。我输入$ data-> current-> getResource()。它返回注意:未定义的属性:MongoGridFSCursor :: $ current在C:\ wamp64 \ www \ testStream \ testStream.php上。那是否意味着$数据不是游标? – rcm