# $file

The `$file` object provides a set of methods that can be used when dealing with a single image or other media file, like getting the URL or resizing an image. It also handles file meta data.

****

- Full class name: `Kirby\Cms\File`
- Alias: `File`
- Source: <https://github.com/getkirby/kirby/tree/5.5.3/src/Cms/File.php#L37>

****

### $file

- [$file->__call()](https://getkirby.com/docs/reference/objects/cms/file/__call.md)
- [new File()](https://getkirby.com/docs/reference/objects/cms/file/__construct.md)
- [$file->__debugInfo()](https://getkirby.com/docs/reference/objects/cms/file/__debug-info.md)
- [$file->__toString()](https://getkirby.com/docs/reference/objects/cms/file/__to-string.md)
- [$file->apiUrl()](https://getkirby.com/docs/reference/objects/cms/file/api-url.md)
- [$file->asset()](https://getkirby.com/docs/reference/objects/cms/file/asset.md)
- [$file->base64()](https://getkirby.com/docs/reference/objects/filesystem/file/base64.md)
- [$file->blueprint()](https://getkirby.com/docs/reference/objects/cms/file/blueprint.md)
- [$file->blueprints()](https://getkirby.com/docs/reference/objects/cms/file/blueprints.md)
- [$file->blur()](https://getkirby.com/docs/reference/objects/cms/file/blur.md)
- [$file->bw()](https://getkirby.com/docs/reference/objects/cms/file/bw.md)
- [$file->changeName()](https://getkirby.com/docs/reference/objects/cms/file/change-name.md)
- [$file->changeSort()](https://getkirby.com/docs/reference/objects/cms/file/change-sort.md)
- [$file->changeStorage()](https://getkirby.com/docs/reference/objects/cms/file/change-storage.md)
- [$file->changeTemplate()](https://getkirby.com/docs/reference/objects/cms/file/change-template.md)
- [$file->clone()](https://getkirby.com/docs/reference/objects/cms/file/clone.md)
- [$file->content()](https://getkirby.com/docs/reference/objects/cms/file/content.md)
- [$file->contentFileData()](https://getkirby.com/docs/reference/objects/cms/file/content-file-data.md)
- [$file->copy()](https://getkirby.com/docs/reference/objects/cms/file/copy.md)
- [File::create()](https://getkirby.com/docs/reference/objects/cms/file/create.md)
- [$file->createDefaultContent()](https://getkirby.com/docs/reference/objects/cms/file/create-default-content.md)
- [$file->crop()](https://getkirby.com/docs/reference/objects/cms/file/crop.md)
- [$file->dataUri()](https://getkirby.com/docs/reference/objects/filesystem/file/data-uri.md)
- [$file->decrement()](https://getkirby.com/docs/reference/objects/cms/file/decrement.md)
- [$file->delete()](https://getkirby.com/docs/reference/objects/cms/file/delete.md)
- [$image->dimensions()](https://getkirby.com/docs/reference/objects/image/image/dimensions.md)
- [$file->download()](https://getkirby.com/docs/reference/objects/filesystem/file/download.md)
- [$file->errors()](https://getkirby.com/docs/reference/objects/cms/file/errors.md)
- [$image->exif()](https://getkirby.com/docs/reference/objects/image/image/exif.md)
- [$file->exists()](https://getkirby.com/docs/reference/objects/cms/file/exists.md)
- [$file->extension()](https://getkirby.com/docs/reference/objects/filesystem/file/extension.md)
- [File::factory()](https://getkirby.com/docs/reference/objects/cms/file/factory.md)
- [$file->filename()](https://getkirby.com/docs/reference/objects/cms/file/filename.md)
- [$file->files()](https://getkirby.com/docs/reference/objects/cms/file/files.md)
- [$file->getMethod()](https://getkirby.com/docs/reference/objects/cms/file/get-method.md)
- [$file->grayscale()](https://getkirby.com/docs/reference/objects/cms/file/grayscale.md)
- [$file->greyscale()](https://getkirby.com/docs/reference/objects/cms/file/greyscale.md)
- [$file->hardcopy()](https://getkirby.com/docs/reference/objects/cms/file/hardcopy.md)
- [$file->hasMethod()](https://getkirby.com/docs/reference/objects/cms/file/has-method.md)
- [$file->hasNext()](https://getkirby.com/docs/reference/objects/cms/file/has-next.md)
- [$file->hasPrev()](https://getkirby.com/docs/reference/objects/cms/file/has-prev.md)
- [$file->hash()](https://getkirby.com/docs/reference/objects/filesystem/file/hash.md)
- [$file->header()](https://getkirby.com/docs/reference/objects/filesystem/file/header.md)
- [$image->height()](https://getkirby.com/docs/reference/objects/image/image/height.md)
- [$file->html()](https://getkirby.com/docs/reference/objects/cms/file/html.md)
- [$file->id()](https://getkirby.com/docs/reference/objects/cms/file/id.md)
- [$image->imagesize()](https://getkirby.com/docs/reference/objects/image/image/imagesize.md)
- [$file->increment()](https://getkirby.com/docs/reference/objects/cms/file/increment.md)
- [$file->indexOf()](https://getkirby.com/docs/reference/objects/cms/file/index-of.md)
- [$file->is()](https://getkirby.com/docs/reference/objects/cms/file/is.md)
- [$file->isAccessible()](https://getkirby.com/docs/reference/objects/cms/file/is-accessible.md)
- [$file->isFirst()](https://getkirby.com/docs/reference/objects/cms/file/is-first.md)
- [$image->isLandscape()](https://getkirby.com/docs/reference/objects/image/image/is-landscape.md)
- [$file->isLast()](https://getkirby.com/docs/reference/objects/cms/file/is-last.md)
- [$file->isListable()](https://getkirby.com/docs/reference/objects/cms/file/is-listable.md)
- [$file->isLocked()](https://getkirby.com/docs/reference/objects/cms/file/is-locked.md)
- [$file->isNth()](https://getkirby.com/docs/reference/objects/cms/file/is-nth.md)
- [$image->isPortrait()](https://getkirby.com/docs/reference/objects/image/image/is-portrait.md)
- [$file->isReadable()](https://getkirby.com/docs/reference/objects/cms/file/is-readable.md)
- [$file->isResizable()](https://getkirby.com/docs/reference/objects/filesystem/file/is-resizable.md)
- [$image->isSquare()](https://getkirby.com/docs/reference/objects/image/image/is-square.md)
- [$file->isValid()](https://getkirby.com/docs/reference/objects/cms/file/is-valid.md)
- [$file->isViewable()](https://getkirby.com/docs/reference/objects/filesystem/file/is-viewable.md)
- [$file->isWritable()](https://getkirby.com/docs/reference/objects/filesystem/file/is-writable.md)
- [$file->kirby()](https://getkirby.com/docs/reference/objects/cms/file/kirby.md)
- [$file->lock()](https://getkirby.com/docs/reference/objects/cms/file/lock.md)
- [$file->manipulate()](https://getkirby.com/docs/reference/objects/cms/file/manipulate.md)
- [$file->match()](https://getkirby.com/docs/reference/objects/filesystem/file/match.md)
- [$file->mediaDir()](https://getkirby.com/docs/reference/objects/cms/file/media-dir.md)
- [$file->mediaHash()](https://getkirby.com/docs/reference/objects/cms/file/media-hash.md)
- [$file->mediaRoot()](https://getkirby.com/docs/reference/objects/cms/file/media-root.md)
- [$file->mediaToken()](https://getkirby.com/docs/reference/objects/cms/file/media-token.md)
- [$file->mediaUrl()](https://getkirby.com/docs/reference/objects/cms/file/media-url.md)
- [$file->mime()](https://getkirby.com/docs/reference/objects/filesystem/file/mime.md)
- [$file->model()](https://getkirby.com/docs/reference/objects/filesystem/file/model.md)
- [$file->modified()](https://getkirby.com/docs/reference/objects/cms/file/modified.md)
- [$file->move()](https://getkirby.com/docs/reference/objects/filesystem/file/move.md)
- [$file->name()](https://getkirby.com/docs/reference/objects/filesystem/file/name.md)
- [$file->next()](https://getkirby.com/docs/reference/objects/cms/file/next.md)
- [$file->nextAll()](https://getkirby.com/docs/reference/objects/cms/file/next-all.md)
- [$file->niceSize()](https://getkirby.com/docs/reference/objects/filesystem/file/nice-size.md)
- [$image->orientation()](https://getkirby.com/docs/reference/objects/image/image/orientation.md)
- [$file->page()](https://getkirby.com/docs/reference/objects/cms/file/page.md)
- [$file->panel()](https://getkirby.com/docs/reference/objects/cms/file/panel.md)
- [$file->parent()](https://getkirby.com/docs/reference/objects/cms/file/parent.md)
- [$file->parentId()](https://getkirby.com/docs/reference/objects/cms/file/parent-id.md)
- [$file->parents()](https://getkirby.com/docs/reference/objects/cms/file/parents.md)
- [$file->permalink()](https://getkirby.com/docs/reference/objects/cms/file/permalink.md)
- [$file->permissions()](https://getkirby.com/docs/reference/objects/cms/file/permissions.md)
- [$file->prev()](https://getkirby.com/docs/reference/objects/cms/file/prev.md)
- [$file->prevAll()](https://getkirby.com/docs/reference/objects/cms/file/prev-all.md)
- [$file->previewUrl()](https://getkirby.com/docs/reference/objects/cms/file/preview-url.md)
- [$file->publish()](https://getkirby.com/docs/reference/objects/cms/file/publish.md)
- [$file->purge()](https://getkirby.com/docs/reference/objects/cms/file/purge.md)
- [$file->quality()](https://getkirby.com/docs/reference/objects/cms/file/quality.md)
- [$file->query()](https://getkirby.com/docs/reference/objects/cms/file/query.md)
- [$image->ratio()](https://getkirby.com/docs/reference/objects/image/image/ratio.md)
- [$file->read()](https://getkirby.com/docs/reference/objects/filesystem/file/read.md)
- [$file->readContent()](https://getkirby.com/docs/reference/objects/cms/file/read-content.md)
- [$file->realpath()](https://getkirby.com/docs/reference/objects/filesystem/file/realpath.md)
- [$file->rename()](https://getkirby.com/docs/reference/objects/filesystem/file/rename.md)
- [$file->replace()](https://getkirby.com/docs/reference/objects/cms/file/replace.md)
- [$file->resize()](https://getkirby.com/docs/reference/objects/cms/file/resize.md)
- [$file->root()](https://getkirby.com/docs/reference/objects/cms/file/root.md)
- [$file->sanitizeContents()](https://getkirby.com/docs/reference/objects/filesystem/file/sanitize-contents.md)
- [$file->save()](https://getkirby.com/docs/reference/objects/cms/file/save.md)
- [$file->sha1()](https://getkirby.com/docs/reference/objects/filesystem/file/sha1.md)
- [$file->sharpen()](https://getkirby.com/docs/reference/objects/cms/file/sharpen.md)
- [$file->siblings()](https://getkirby.com/docs/reference/objects/cms/file/siblings.md)
- [$file->site()](https://getkirby.com/docs/reference/objects/cms/file/site.md)
- [$file->size()](https://getkirby.com/docs/reference/objects/filesystem/file/size.md)
- [$file->srcset()](https://getkirby.com/docs/reference/objects/cms/file/srcset.md)
- [$file->storage()](https://getkirby.com/docs/reference/objects/cms/file/storage.md)
- [$file->template()](https://getkirby.com/docs/reference/objects/cms/file/template.md)
- [$file->templateSiblings()](https://getkirby.com/docs/reference/objects/cms/file/template-siblings.md)
- [$file->thumb()](https://getkirby.com/docs/reference/objects/cms/file/thumb.md)
- [$file->toArray()](https://getkirby.com/docs/reference/objects/cms/file/to-array.md)
- [$file->toJson()](https://getkirby.com/docs/reference/objects/filesystem/file/to-json.md)
- [$file->toSafeString()](https://getkirby.com/docs/reference/objects/cms/file/to-safe-string.md)
- [$file->toString()](https://getkirby.com/docs/reference/objects/cms/file/to-string.md)
- [$file->translation()](https://getkirby.com/docs/reference/objects/cms/file/translation.md)
- [$file->translations()](https://getkirby.com/docs/reference/objects/cms/file/translations.md)
- [$file->type()](https://getkirby.com/docs/reference/objects/cms/file/type.md)
- [$file->unpublish()](https://getkirby.com/docs/reference/objects/cms/file/unpublish.md)
- [$file->update()](https://getkirby.com/docs/reference/objects/cms/file/update.md)
- [$file->url()](https://getkirby.com/docs/reference/objects/cms/file/url.md)
- [$file->uuid()](https://getkirby.com/docs/reference/objects/cms/file/uuid.md)
- [$file->validateContents()](https://getkirby.com/docs/reference/objects/filesystem/file/validate-contents.md)
- [$file->version()](https://getkirby.com/docs/reference/objects/cms/file/version.md)
- [$file->versions()](https://getkirby.com/docs/reference/objects/cms/file/versions.md)
- [$image->width()](https://getkirby.com/docs/reference/objects/image/image/width.md)
- [$file->write()](https://getkirby.com/docs/reference/objects/filesystem/file/write.md)
- [$file->writeContent()](https://getkirby.com/docs/reference/objects/cms/file/write-content.md)

You can extend this set of methods with <a href="https://getkirby.com/docs/reference/plugins/extensions/file-methods">custom file methods</a>.

## How to get a `$file` object

You can get a `$file` object to use with these methods by fetching it from the `$site`, a `$page` or a `$user` object.

### Site file
```php
<?php if ($file = $site->files()->first()): ?>
<img src="<?= $file->url() ?>" alt="">
<?php endif ?>
```

### Page file
```php
<?php if ($file = $page->files()->first()): ?>
<img src="<?= $file->url() ?>" alt="">
<?php endif ?>
```

### User file
```php
<?php if ($file = $user->files()->first()): ?>
<img src="<?= $file->url() ?>" alt="">
<?php endif ?>
```

<info>
Note how we use an if statement here to check if we have a file object before we call the `url()` method to prevent errors in case the page doesn't have any files. Never forget to do this in your own code.
</info>

---

Examples:

### Resizing a file

```php
<?php if ($image = $page->image('myimage.jpg')): ?>
<img src="<?= $image->resize(300)->url() ?>" alt="">
<?php endif ?>
```