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

Common

Name Return Summary  
Pagefiles::formatted() bool Get or set formatted state
Pagefiles::getField() Field or null Get the field these files are assigned to
Pagefiles::getFile(string $name) null or Pagefile Get the Pagefile having the given basename, or null if not found.
Pagefiles::getPage() Page Get the page these files are assigned to
Pagefiles::path() string Return 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() string Returns the web accessible index URL where files are stored
Can also be used as property: Pagefiles::url

Manipulation

Name Return Summary  
Pagefiles::add($item) $this Add a new Pagefile item or filename
Pagefiles::delete($item) $this Delete a pagefile item
Pagefiles::deleteAll() $this Delete all files associated with this Pagefiles instance, leaving a blank Pagefiles instance.

Tags

Name Return Summary  
Pagefiles::findTag($tag) Pagefiles Return all Pagefile objects that have the given tag(s).
Pagefiles::getTag(string $tag) Pagefile or null Return the first Pagefile that matches the given tag or NULL if no match

Other

Name Return Summary  
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: