$filessend()

Send the contents of the given filename to the current http connection

This function utilizes the $config->fileContentTypes to match file extension to content type headers and force-download state.

This function throws a WireException if the file can’t be sent for some reason. Set the throw option to false if you want it to instead return integer 0 when errors occur.

Usage

// basic usage
$int = $files->send($filename);

// usage with all arguments
$int = $files->send($filename, array $options = [], array $headers = []);

Arguments

NameType(s)Description
$filenamestring bool

Full path and filename to send or boolean false if provided in $options[data].

$options (optional)array

Optional options to modify default behavior:

  • exit (bool): Halt program execution after file send Default:true
  • partial (bool): Allow use of partial downloads via HTTP_RANGE requests? 3.0.131 Default:true
  • forceDownload (bool|null): Whether file should force download, or null to let content-type header decide Default:null
  • downloadFilename (string): Filename you want the download to show on user’s computer, or omit to use existing Default:''
  • headers (array): The $headers argument to this method can also be provided as an option right here Default:[] 3.0.131.
  • data (string): String of data to send rather than file, $filename argument must be false Default:'' 3.0.132.
  • limitPath (string|bool): Prefix disk path $filename must be within, false to disable, true for site/assets Default:false 3.0.169.
  • throw (bool): Throw exceptions on error? When false, it will instead return integer 0 on errors Default:true 3.0.169.
$headers (optional)array

Optional headers that are sent, below are the defaults:

  • pragma: public
  • expires: 0
  • cache-control: must-revalidate, post-check=0, pre-check=0
  • content-type: {content-type} (replaced with actual content type)
  • content-transfer-encoding: binary
  • content-length: {filesize} (replaced with actual filesize)
  • To remove a header completely, make its value NULL.
  • If preferred, the above headers can be specified in $options[headers] instead.

Return value

int

Returns bytes sent, only if exit option is false 3.0.169

Exceptions

Method can throw exceptions on error:

  • WireException

See Also


$files methods and properties

API reference based on ProcessWire core version 3.0.251