Php-MongoGridFS weeor във функцията storeFile().

Опитвам се да използвам MongoGridFS за работа с файлове с изображения. по-долу е моят код, който опитвам..

$m = new MongoClient();
   // select a database
   $dbInput = "json";
   $db = $m->$dbInput;
    var_dump($mongo_fs= $db->getGridFS());//new MongoGridFS($db,"files_coll");
    //$file_id=$mongo_fs->put("Jellyfish.jpg");
    $id=1234;
    $mongo_fs->storeFile("act.php", array("_id" => $id));
    //var_dump($file = $mongo_fs->get($file_id));
    echo $gridFS->findOne(array("_id" => $id))->getBytes();

и двата файла 'act.php' и 'Jellyfish.jpg' са налични в същата директория като тази на изходния файл. Получавам грешка-

Фатална грешка: Неуловено изключение „MongoGridFSException“ със съобщение „не можа да отвори файл act.php“ в C:\xampp\htdocs\mongoDB\mongo_files.php:10 Проследяване на стека: #0 C:\xampp\htdocs\mongoDB\mongo_files. php(10): MongoGridFS->storeFile('act.php', Array) #1 {main} Следващо изключение 'MongoGridFSException' със съобщение 'грешка при настройка на файл: act.php' в C:\xampp\htdocs\mongoDB\ mongo_files.php:10 Проследяване на стека: #0 C:\xampp\htdocs\mongoDB\mongo_files.php(0): MongoGridFS->storeFile() 1 {main} хвърлен в C:\xampp\htdocs\mongoDB\mongo_files.php на ред 10

търсих много в интернет. този въпрос може да е същият като на Грешка при големи файлове с GridFS и MongoDB, но не се опитвам да качвам голям файл и не използвам „html формуляр“, за да качвам нищо. Всеки отговор се оценява.

Благодаря


person Swaps    schedule 28.07.2015    source източник
comment
Вашите файлове с изображения над 16 MB ли са? ако не, тогава си спестите неприятности и не използвайте GridFS. Връзката е там, така че всъщност можете да прочетете какво всъщност представлява GridFS. Когато вашите файлове са по-малки от 16MB (ограничение за размера на BSON документ), тогава просто съхранявайте двоичните данни директно в поле на документ. MongoDB с удоволствие прави това и всъщност това е всичко, което функциите на библиотеката GridFS всъщност правят, но просто разбиват голямо съдържание на парчета, достатъчно малки, за да се поберат.   -  person Blakes Seven    schedule 28.07.2015
comment
@BlakesSeven в момента просто се опитвам с по-малки файлове, но в бъдеще има доста добри шансове да се справя с големи файлове. а също и GridFS предоставя директни функции за достъп и съхраняване на файлове в MongoDB, затова мислех да го използвам. Всякакви допълнителни предложения са добре дошли. :)   -  person Swaps    schedule 29.07.2015
comment
Моето предложение беше там. Единствените големи файлове, с които обикновено бих работил в общ уебсайт, са много под 64 MB (което е наистина голямо за изображение), следователно е много по-ефективно да ги съхранявате директно в един документ. GridFS е силно използван, което е моето мнение. Използвайте го само за приложенията, където наистина имате нужда от него. Съществуват значителни разходи за по-малки файлове.   -  person Blakes Seven    schedule 29.07.2015
comment
Вашето предложение звучи добре, но ще бъде оценено, ако споделите някакъв пример, за да направите същото, без да използвате GridFS, тъй като получавам само GridFS за съхраняване на файлове в MongoDB в резултат на това, ако потърся в Google същото.   -  person Swaps    schedule 29.07.2015