function BinaryFileResponse::setContentDisposition
Sets the Content-Disposition header with the given filename.
Parameters
string $disposition ResponseHeaderBag::DISPOSITION_INLINE or ResponseHeaderBag::DISPOSITION_ATTACHMENT:
string $filename Optionally use this UTF-8 encoded filename instead of the real name of the file:
string $filenameFallback A fallback filename, containing only ASCII characters. Defaults to an automatically encoded filename:
Return value
$this
1 call to BinaryFileResponse::setContentDisposition()
- BinaryFileResponse::setFile in vendor/
symfony/ http-foundation/ BinaryFileResponse.php - Sets the file to stream.
File
-
vendor/
symfony/ http-foundation/ BinaryFileResponse.php, line 155
Class
- BinaryFileResponse
- BinaryFileResponse represents an HTTP response delivering a file.
Namespace
Symfony\Component\HttpFoundationCode
public function setContentDisposition(string $disposition, string $filename = '', string $filenameFallback = '') : static {
if ('' === $filename) {
$filename = $this->file
->getFilename();
}
if ('' === $filenameFallback && (!preg_match('/^[\\x20-\\x7e]*$/', $filename) || str_contains($filename, '%'))) {
$encoding = mb_detect_encoding($filename, null, true) ?: '8bit';
for ($i = 0, $filenameLength = mb_strlen($filename, $encoding); $i < $filenameLength; ++$i) {
$char = mb_substr($filename, $i, 1, $encoding);
if ('%' === $char || \ord($char) < 32 || \ord($char) > 126) {
$filenameFallback .= '_';
}
else {
$filenameFallback .= $char;
}
}
}
$dispositionHeader = $this->headers
->makeDisposition($disposition, $filename, $filenameFallback);
$this->headers
->set('Content-Disposition', $dispositionHeader);
return $this;
}