MongoGridFS::storeUpload

(PECL mongo >=0.9.0)

MongoGridFS::storeUploadСохраняет загруженный файл в базе данных

Описание

public MongoGridFS::storeUpload ( string $name [, array $metadata ] ) : mixed

Список параметров

name

Имя загруженного файла(ов) для сохранения. Должно соответствовать атрибуту name поля файл в форме HTML.

metadata

Другие поля метаданных для включения в файл документа.

Замечание:

Данные поля могут перезаписать поля, автоматически созданные драйвером, как указано в основной документации MongoDB » коллекции файлов. В качестве практического применения данного поведения можно указать собственный chunkSize или _id для файла.

Замечание:

Поле filename будет заполнено именем файла клиента (например, $_FILES['foo']['name']).

Возвращаемые значения

Возвращает _id сохраненного документа. Это будет сгенерированный MongoId, за исключением случая, когда _id был явно указан в параметре metadata.

Замечание:

Если несколько файлов загружены с использованием одного и того же имени поля, этот метод ничего не вернет; однако сами файлы все равно будут обработаны.

Ошибки

Выдает исключение MongoGridFSException, если при чтении загруженных файлов или вставке в коллекции chunks или files возникает ошибка.

Список изменений

Версия Описание
1.2.5 Изменен второй параметр на массив метаданных. До 1.2.5 вторым параметром была необязательная строка, переопределяющая имя файла.

Примеры

Пример #1 Пример HTML-формы для MongoGridFS::storeUpload()

Suppose you have the following HTML form:

<form method="POST" enctype="multipart/form-data">
    <label for="username">Имя пользователя:</label>
    <input type="text" name="username" id="username" />

    <label for="pic">Пожалуйста, загрузите изображение профиля:</label>
    <input type="file" name="pic" id="pic" />

    <input type="submit" />
</form>

Если вы хотите сохранить загруженное изображение в MongoDB, вы можете сделать следующее в скрипте, обрабатывающем отправку формы:

<?php
$m 
= new MongoClient();
$gridfs $m->selectDB('test')->getGridFS();

$gridfs->storeUpload('pic', array('username' => $_POST['username']));
?>

Смотрите также