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 возникает ошибка.

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

Версия Описание
PECL mongo 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']));
?>

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