Использование Gridfs под Laravel 5.3 с драйвером mongo-php-library 2.2

Мы используем PHP7, последний пакет MongoDB PECL (1.2.2) — Laravel 5.3 — jenssegers / laravel-mongodb 3.1

Я хочу использовать GridFS. Обычно он доступен в пакете MongoDB PECL, но нет ни документации, ни примера рабочего кода.

4

Решение

Ты можешь использовать Bucket класс для загрузки и скачивания документов в сетку mongodb на драйвере mongo-php-library 2.2.

//upload file
$bucket = \DB::connection('mongodb')->getMongoDB()->selectGridFSBucket();
$resource = fopen($file_path, "a+");
$file_id = $bucket->uploadFromStream($file_path, $resource);

//download file
$bucket = \DB::connection('mongodb')->getMongoDB()->selectGridFSBucket();
$file_metadata = $bucket->findOne(["_id" => $file_id]);
$path = $file_metadata->filename;

if(!file_exists($path)) {
$downloadStream = $bucket->openDownloadStream($file_id);
$stream = stream_get_contents($downloadStream, -1);
$ifp = fopen($path, "a+");
fwrite($ifp, $stream);
fclose($ifp);
}
1

Другие решения

Вы можете пройти через это ссылка на сайт. Это показывает, как вы можете использовать gridFS с Laravel-mongodb, а также вам может понадобиться обновить драйверы mongo db для этого.

Другая ссылка на сайт для вашей справки.

Хотя там нет примера кода, но он поможет вам, если вы работали над Mongo с Laravel.

Надеюсь, это поможет вам

0

По вопросам рекламы [email protected]