# MongoGridFS::put

(PECL mongo >=1.0.8)

MongoGridFS::put — Stores a file in the database

### Description

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

> Note:

> MongoGridFS::put() is an alias of MongoGridFS::storeFile().

### Parameters

`filename`

  Name of the file 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.

### See Also

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