Pagefiles is a type of WireArray that contains Pagefile objects. It also acts as the value for multi-file fields in ProcessWire.

The items in a Pagefiles array are Pagefile objects, indexed by file basename, i.e. myfile.pdf. Information on most traversal, filtering and manipulation methods can be found in the WireArray class that Pagefiles extends. In the examples below, $page->files is an instance of Pagefiles:

// Determining if any files are present
if($page->files->count()) {
  // There are files here
}

// Traversing and outputting links to all files
foreach($page->files as $name => $pagefile) {
  echo "<li><a href='$pagefile->url'>$name: $pagefile->description</a></li>";
}

// Adding new file(s)
$page->files->add('/path/to/file.pdf');
$page->files->add('http://domain.com/photo.png');
$page->save('files');

// Getting file by name
$pagefile = $page->files->getFile('file.pdf');
$pagefile = $page->files['file.pdf']; // alternate

// Getting first and last file
$pagefile = $page->files->first();
$pagefile = $page->files->last();

Click any linked item for full usage details and examples. Hookable methods are indicated with the icon. In addition to those shown below, the Pagefiles class also inherits all the methods and properties of: WireArray and Wire.

Common / Manipulation / Tags / Other

Show “Pagefiles”             Show Arguments        

Common

NameReturnSummary 
Pagefiles::formatted()
boolGet or set formatted state
Pagefiles::getField()
Field or nullGet the field these files are assigned to
Pagefiles::getFile(string $name)
null or PagefileGet the Pagefile having the given basename, or null if not found.
Pagefiles::getPage()
PageGet the page these files are assigned to
Pagefiles::path()
stringReturn the full disk path where files are stored
Can also be used as property: Pagefiles::path
Pagefiles::setField(Field $field)
(nothing)Set the field these files are assigned to
Pagefiles::setPage(Page $page)
(nothing)Set the Page these files are assigned to
Pagefiles::url()
stringReturns the web accessible index URL where files are stored
Can also be used as property: Pagefiles::url

Manipulation

NameReturnSummary 
Pagefiles::add($item)
$thisAdd a new Pagefile item or filename
Pagefiles::delete($item)
$thisDelete a pagefile item
Pagefiles::deleteAll()
$thisDelete all files associated with this Pagefiles instance, leaving a blank Pagefiles instance.

Tags

NameReturnSummary 
Pagefiles::findTag($tag)
PagefilesReturn all Pagefile objects that have the given tag(s).
Pagefiles::getTag(string $tag)
Pagefile or nullReturn the first Pagefile that matches the given tag or NULL if no match

Other

NameReturnSummary 
Pagefiles::field Field Returns the Field that contains this set of files, same as the getField() method.
Pagefiles::page Page Returns the Page that contains this set of files, same as the getPage() method.

Additional methods and properties

In addition to the methods and properties above, Pagefiles also inherits the methods and properties of these classes:

API reference based on ProcessWire core version 3.0.66