ExpressionEngine Docs

File Model

In ExpressionEngine 7 the File model is inheriting FileSystemEntity model, which is also parent of Directory model. They share same properties and most of the methods; different models are being used when there is need to distinguish between file and subfolder.

We recommend using FileSystemEntity when you need everything that is in certain Upload Directory, and use File or Directory when working specifically with files or folders within Upload Directory. When saving, the exact model (File or Directory) always needs to be used.

FileSystemEntity

class ExpressionEngine\Model\File\FileSystemEntity

Properties

Name Validation Type Description
file_id Key Primary ID of file or subfolder
site_id MSM site ID, default is 1
title xss Title (can be different from file name, often used for alt text)
upload_location_id ID of Upload Directory that the file is in
directory_id Subfolder ID, if file is in subfolder
mime_type Registered MIME type for the file.
file_type File type. The built-in types are Image / Document / Archive / Audio / Video
file_name Name of file on filesystem
file_size File size
description xss Description
credit xss Credits
location xss Location where the photo was made
uploaded_by_member_id ID of member who initially uploaded the file
upload_date Date when file was initially uploaded
modified_by_member_id ID of member who made last modification to the file
modified_date Date when file was modified last time
file_hw_original Height and width of the file when it was originally uploaded
total_records Number of times the file is being used in entries & categories

Relationships

UploadDestination

The location the file is uploaded to.

UploadAuthor

The user who uploaded the file.

ModifyAuthor

The last user to modify the file.

Categories

Selected categories the file has.

Site

The site the file is apart of.

FileCategories

Categories that are using this file as category image

FileEntries

Entries that are using this file

Methods

isFile()

Returns true is entity is File, false otherwise

isDirectory()

Returns true is entity is Directory (subfolder), false otherwise

isImage()

Uses the file’s mime-type to determine if the file is an image or not.

isEditableImage()

Uses the file’s mime-type to determine if the file is an editable image or not.

isSVG()

Uses the file’s mime-type to determine if the file is an SVG or not.

getFilesystem()

Get Filesystem object for the file’s Upload Directory

getSubfoldersPath()

Get the subfolder path to the given file

getBaseServerPath()

Get base server path for file’s upload location

getBaseUrl()

Get base url for upload location and folder

getAbsolutePath()

Get absolute path to the file on the filesystem

getAbsoluteManipulationPath($manipulation = 'thumbs')

Get absolute path to the file’s pre-manipulated version on the filesystem. Accepts manipulation name as parameter

getAbsoluteThumbnailPath()

Uses the file’s upload destination’s server path to compute the absolute thumbnail path of the file

getAbsoluteURL()

Uses the file’s upload destination’s url to compute the absolute URL of the file

getAbsoluteManipulationURL($manipulation = 'thumbs')

Get URL for pre-manipulated file version. Accepts manipulation name as parameter

getAbsoluteThumbnailURL()

Get URL of file’s thumbnail

getThumbnailUrl()

Alias of getAbsoluteThumbnailURL

deleteOriginalFile()

Deletes the original file

deleteGeneratedFiles()

Deletes the file’s manipulated versions

deleteAllFiles()

Deletes the original file and all of its manipulated versions

memberHasAccess(Member $member)

Determines if the member has access permission to file’s upload destination.

exists()

Determines if the file exists

isWritable()

Determines if the file or subfolder is writable

getChildIds()

Get an array of IDs for files and folders that belong to this FileSystemEntity

actLocally(callable $callback)

Perform some action on the file in a local context

Events

  • beforeDelete
  • beforeInsert
  • beforeSave

File

class ExpressionEngine\Model\File\File

Represents a file. Child of FileSystemEntity and is sharing all of it’s properties and methods. Defines some extra necessary

Directory

class ExpressionEngine\Model\File\Directory

Represents a folder. Child of FileSystemEntity and is sharing all of it’s properties and methods. Has extra

Examples

Get a File

$file = ee('Model')->get('File', 4)->first();