2015-03-07 18 views
8

czy można ustawić własną nazwę pliku po zwróceniu pliku przez kontroler Symfony2 za pomocą odpowiedzi BinaryFileResponse?Symfony BinaryFileResponse ustawić nazwę pliku

+0

stosowanie '$ response-> headers-> zestaw (Content-Dyspozycja "sprintf ('mocowanie, nazwa pliku = "% s"' $ nazwa pliku)); ' –

Odpowiedz

22

Tak. Klasa BinaryFileResponse ma metodę setContentDisposition(), która przyjmuje nazwę pliku jako drugi argument.

Pierwszy argument to sposób, w jaki plik powinien zostać dostarczony. Może to być ResponseHeaderBag::DISPOSITION_ATTACHMENT (lub tylko ciąg "attachment"), jeśli plik powinien być oferowany do pobrania, lub ResponseHeaderBag::DISPOSITION_INLINE (lub "inline"), jeśli chcesz, aby plik był wyświetlany w przeglądarce (możesz to zrobić na przykład przy obrazach) .

pełny przykład kod:

<?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' 
);