2015-03-07 22 views
8

ist es möglich, einen eigenen Dateinamen zu setzen, wenn die Datei vom Symfony2-Controller durch BinaryFileResponse-Antwort zurückgegeben wird?Symfony BinaryFileResponse Set Dateiname

+0

Gebrauch '$ response-> Kopfzeilen können> set ('Content-Disposition', sprintf ('attachment; filename = "% s"', $ filename)); ' –

Antwort

22

Ja. Die Klasse BinaryFileResponse hat eine Methode setContentDisposition(), die den Dateinamen als zweites Argument verwendet.

Das erste Argument ist die Art, wie die Datei geliefert werden soll. Es kann ResponseHeaderBag::DISPOSITION_ATTACHMENT (oder nur die Zeichenkette "attachment") sein, wenn die Datei zum Herunterladen angeboten werden soll, oder ResponseHeaderBag::DISPOSITION_INLINE (oder "inline"), wenn die Datei im Browser angezeigt werden soll (dies kann z. B. mit Bildern geschehen). .

Ein vollständiges Codebeispiel:

<?php 
use Symfony\Component\HttpFoundation\BinaryFileResponse; 
use Symfony\Component\HttpFoundation\ResponseHeaderBag; 

$response = new BinaryFileResponse('/path/to/myfile'); 
$response->setContentDisposition(
    ResponseHeaderBag::DISPOSITION_ATTACHMENT, 
    'file_name.txt' 
);