(PECL mongo >=0.9.0)
MongoGridFS::storeUpload — Stocke un fichier téléchargé dans la base de données
name
Le nom du ou des fichiers téléchargés à stocker. Il doit correspondre à l'attribut name du formulaire HTML.
metadata
Autres champs de méta-données à inclure dans le document fichier.
Note:
Ces champs peuvent aussi écraser ceux qui auraient pu être créés automatiquement par le driver, tel que décrit dans la documentation MongoDB sur les » fichiers de collection. Une des particularités de ce comportement serait de spécifier un chunkSize ou un _id personnalisé pour le fichier.
Note:
Le champ filename contiendra le nom du fichier client (i.e.$_FILES['foo']['name']).
Retourne l'_id du fichier document sauvegardé. Cela va retourner un MongoId généré tant qu'un _id ne soit explicitement spécifié dans le paramètre metadata
.
Note:
Si plusieurs fichiers sont téléchargés en utilisant le même nom de champ, cette méthode ne retournera rien ; cependant, les fichiers eux-même seront tout de même traités.
Lance une exception MongoGridFSException si une erreur survient lors de la lecture du ou des fichiers téléchargés, ou lors de l'insertion dans la collection chunks ou files.
Version | Description |
---|---|
1.2.5 | Modification du second paramètre en un tableau de méta-données. Avant la version 1.2.5, le second paramètre étaient une chaîne optionnelle permettant d'écraser le nom du fichier. |
Exemple #1 Exemple avec MongoGridFS::storeUpload() et un formulaire HTML
Supposons que vous avez le formulaire HTML suivant :
<form method="POST" enctype="multipart/form-data"> <label for="username">Username:</label> <input type="text" name="username" id="username" /> <label for="pic">Please upload a profile picture:</label> <input type="file" name="pic" id="pic" /> <input type="submit" /> </form>
Si vous voulez stocker l'image téléchargé dans MongoDB, vous pouvez le faire grâce au script suivant, gérant la soumission du formulaire :
<?php
$m = new MongoClient();
$gridfs = $m->selectDB('test')->getGridFS();
$gridfs->storeUpload('pic', array('username' => $_POST['username']));
?>