(PECL mongo >=0.9.0)
MongoGridFS::storeUpload — アップロードされたファイルをデータベースに格納する
name
アップロードされたファイルの name フィールド。 これは、HTML フォームの file フィールドの name 属性と同じでなければいけません。
metadata
格納するファイルに含めるその他のメタデータフィールド。
注意:
これらのフィールドは、ドライバが自動生成したフィールドも上書きします。詳しい説明は、MongoDB コアドキュメントの » files collection を参照ください。この挙動の現実的な使い道としては、ファイルの chunkSize や _id を独自に指定する場合などがあります。
注意:
filename フィールドには、クライアントのファイル名 ($_FILES['foo']['name'] など) が入ります。
格納したファイルドキュメントの _id を返します。metadata
パラメータで _id を明示的に指定していない場合は、自動生成した MongoId となります。
注意:
複数のファイルを同じフィールド名でアップロード した場合は、このメソッドは何も返しません。 しかし、ファイル自体の処理はそのまま行われます。
アップロードされたファイルの読み込みに失敗したり、 chunks あるいは files コレクションへの追加に失敗したりした場合に MongoGridFSException をスローします。
バージョン | 説明 |
---|---|
1.2.5 | 二番目のパラメータがメタデータの配列に変わりました。これより前のバージョンでは、 二番目のパラメータはオプションの文字列で、ファイル名を上書きするものでした。 |
例1 MongoGridFS::storeUpload() を使った HTML フォームの例
こんな HTML フォームがあるものとします。
<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']));
?>