(PECL mongo >=0.9.0)
MongoGridFS::storeUpload — Сохраняет загруженный файл в базе данных
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']));
?>