2015-03-07 16 views
8

è possibile impostare il proprio nome file quando il file viene restituito dal controller Symfony2 tramite la risposta BinaryFileResponse?Symfony BinaryFileResponse set nome file

+0

uso '$ response-> headers-> set ('Content-Disposition', sprintf ('attaccamento; filename = "% s"', $ filename)); ' –

risposta

22

Sì. La classe BinaryFileResponse ha un metodo setContentDisposition() che accetta il nome del file come secondo argomento.

Il primo argomento è il modo in cui il file deve essere consegnato. Può essere ResponseHeaderBag::DISPOSITION_ATTACHMENT (o solo la stringa "attachment") se il file deve essere offerto per il download, oppure ResponseHeaderBag::DISPOSITION_INLINE (o "inline") se si desidera che il file venga visualizzato nel browser (si consiglia di farlo con le immagini, ad esempio) .

Un esempio completo di codice:

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