Stores a file in the database

MongoGridFS::storeBytes
MongoGridFS::storeUpload
MongoGridFS
PHP Manual

# MongoGridFS::storeFile

(PECL mongo >=0.9.0)

MongoGridFS::storeFile — Stores a file in the database

### Description

public mixed MongoGridFS::storeFile ( string|resource `$filename` [, array `$metadata` = array() [, array `$options` = array() ]] )

### Parameters

`filename`

  Name of the file or a readable stream to store.

`metadata`

  Other metadata fields to include in the file document.

  > Note:

  > These fields may also overwrite those that would be created automatically by the driver, as described in the MongoDB core documentation for the » files collection. Some practical use cases for this behavior would be to specify a custom chunkSize or _id for the file.

`options`

  An array of options for the insert operations executed against the chunks and files collections. See MongoCollection::insert() for documentation on these these options.

### Return Values

Returns the _id of the saved file document. This will be a generated MongoId unless an _id was explicitly specified in the `metadata` parameter.

### Errors/Exceptions

Throws MongoGridFSException if there is an error reading `filename` or inserting into the chunks or files collections.

### Examples

Example #1 MongoGridFS::storeFile() with additional metadata

`<?php
$m = new MongoClient();
$gridfs = $m->selectDB('test')->getGridFS();
$id = $gridfs->storeFile('example.txt', array('contentType' => 'plain/text'));
$gridfsFile = $gridfs->get($id);
var_dump($gridfsFile->file);
?>`

The above example will output something similar to:

    array(7) {
      ["_id"]=>
      object(MongoId)#6 (0) {
      }
      ["contentType"]=>
      string(10) "plain/text"
      ["filename"]=>
      string(11) "example.txt"
      ["uploadDate"]=>
      object(MongoDate)#7 (0) {
      }
      ["length"]=>
      int(26)
      ["chunkSize"]=>
      int(262144)
      ["md5"]=>
      string(32) "c3fcd3d76192e4007dfb496cca67e13b"
    }

### See Also

- MongoGridFS::put() - Stores a file in the database
- MongoGridFS::storeBytes() - Stores a string of bytes in the database
- MongoGridFS::storeUpload() - Stores an uploaded file in the database
- MongoDB core docs on » GridFS

MongoGridFS::storeBytes
MongoGridFS::storeUpload
MongoGridFS
PHP Manual