mini\Http\Message\FileResponse class

Documentation

Response for serving files with automatic MIME type detection

Serves files from the filesystem with proper Content-Type, Content-Length, and optional Content-Disposition headers for downloads.

// Serve an image inline (displayed in browser)
return new FileResponse('/path/to/image.png');

// Serve a file as download
return new FileResponse('/path/to/file.pdf', download: true);

// Serve with custom filename for download
return new FileResponse('/path/to/file.pdf', download: 'report.pdf');

// Override MIME type
return new FileResponse('/path/to/file', mimeType: 'application/octet-stream');

Inheritance

Extends: mini\Http\Message\Response

Implements: Psr\Http\Message\MessageInterface Psr\Http\Message\ResponseInterface

Constants (2)

NameValue
MIME_TYPES array ( 'png' => 'image/png', 'jpg' => 'image/jpeg', 'jpeg' => 'image/jpeg', 'gif' => 'image/gif', 'svg' => 'image/svg+xml', 'webp' => 'image/webp', 'ico' => 'image/x-icon', 'bmp' => 'image/bmp', 'pdf' => 'application/pdf', 'doc' => 'application/msword', 'docx' => 'application/vnd.openxmlformats-officedocument.wordprocessingml.document', 'xls' => 'application/vnd.ms-excel', 'xlsx' => 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', 'txt' => 'text/plain', 'csv' => 'text/csv', 'html' => 'text/html', 'htm' => 'text/html', 'css' => 'text/css', 'js' => 'application/javascript', 'json' => 'application/json', 'xml' => 'application/xml', 'md' => 'text/markdown', 'zip' => 'application/zip', 'gz' => 'application/gzip', 'tar' => 'application/x-tar', 'rar' => 'application/vnd.rar', '7z' => 'application/x-7z-compressed', 'mp3' => 'audio/mpeg', 'wav' => 'audio/wav', 'ogg' => 'audio/ogg', 'mp4' => 'video/mp4', 'webm' => 'video/webm', 'avi' => 'video/x-msvideo', 'woff' => 'font/woff', 'woff2' => 'font/woff2', 'ttf' => 'font/ttf', 'otf' => 'font/otf', 'eot' => 'application/vnd.ms-fontobject', )
PHRASES array ( 100 => 'Continue', 101 => 'Switching Protocols', 102 => 'Processing', 200 => 'OK', 201 => 'Created', 202 => 'Accepted', 203 => 'Non-Authoritative Information', 204 => 'No Content', 205 => 'Reset Content', 206 => 'Partial Content', 207 => 'Multi-status', 208 => 'Already Reported', 300 => 'Multiple Choices', 301 => 'Moved Permanently', 302 => 'Found', 303 => 'See Other', 304 => 'Not Modified', 305 => 'Use Proxy', 306 => 'Switch Proxy', 307 => 'Temporary Redirect', 400 => 'Bad Request', 401 => 'Unauthorized', 402 => 'Payment Required', 403 => 'Forbidden', 404 => 'Not Found', 405 => 'Method Not Allowed', 406 => 'Not Acceptable', 407 => 'Proxy Authentication Required', 408 => 'Request Time-out', 409 => 'Conflict', 410 => 'Gone', 411 => 'Length Required', 412 => 'Precondition Failed', 413 => 'Request Entity Too Large', 414 => 'Request-URI Too Large', 415 => 'Unsupported Media Type', 416 => 'Requested range not satisfiable', 417 => 'Expectation Failed', 418 => 'I\'m a teapot', 422 => 'Unprocessable Entity', 423 => 'Locked', 424 => 'Failed Dependency', 425 => 'Unordered Collection', 426 => 'Upgrade Required', 428 => 'Precondition Required', 429 => 'Too Many Requests', 431 => 'Request Header Fields Too Large', 451 => 'Unavailable For Legal Reasons', 500 => 'Internal Server Error', 501 => 'Not Implemented', 502 => 'Bad Gateway', 503 => 'Service Unavailable', 504 => 'Gateway Time-out', 505 => 'HTTP Version not supported', 506 => 'Variant Also Negotiates', 507 => 'Insufficient Storage', 508 => 'Loop Detected', 511 => 'Network Authentication Required', )

Properties (6)

protected int $statusCode
protected string $reasonPhrase
protected string $protocolVersion
protected Psr\Http\Message\StreamInterface $body
protected array $headers
protected array $headerCases

Methods (20)

Documentation missing

Detect MIME type from file extension or content

protected ResponseTrait()
inherited from mini\Http\Message\Response

Configure the response trait

public getStatusCode()
inherited from mini\Http\Message\Response

Gets the response status code.

public withStatus()
inherited from mini\Http\Message\Response

Return an instance with the specified status code and, optionally, reason phrase.

public getReasonPhrase()
inherited from mini\Http\Message\Response

Gets the response reason phrase associated with the status code.

protected static getDefaultReasonPhrase()
inherited from mini\Http\Message\Response

Documentation missing

public __clone()
inherited from mini\Http\Message\Response

Documentation missing

protected MessageTrait()
inherited from mini\Http\Message\Response

Configure the message trait.

public getProtocolVersion()
inherited from mini\Http\Message\Response

Retrieves the HTTP protocol version as a string.

public withProtocolVersion()
inherited from mini\Http\Message\Response

Return an instance with the specified HTTP protocol version.

public getHeaders()
inherited from mini\Http\Message\Response

Get message headers

public hasHeader()
inherited from mini\Http\Message\Response

Checks if a header exists by the given case-insensitive name.

public getHeader()
inherited from mini\Http\Message\Response

Retrieves a message header value by the given case-insensitive name.

public getHeaderLine()
inherited from mini\Http\Message\Response

Retrieves a comma-separated string of the values for a single header.

public withHeader()
inherited from mini\Http\Message\Response

Return an instance with the provided value replacing the specified header.

public withAddedHeader()
inherited from mini\Http\Message\Response

Return an instance with the specified header appended with the given value.

public withoutHeader()
inherited from mini\Http\Message\Response

Return an instance without the specified header.

public getBody()
inherited from mini\Http\Message\Response

Gets the body of the message.

public withBody()
inherited from mini\Http\Message\Response

Return an instance with the specified message body.

Source

src/Http/Message/FileResponse.php:22-150