是否可以在Symfony2控制器通过BinaryFileResponse响应返回文件时设置自己的文件名?
答案 0 :(得分:31)
是。 BinaryFileResponse
类有一个方法setContentDisposition()
,它将文件名作为第二个参数。
第一个参数是文件的传递方式。它可以是ResponseHeaderBag::DISPOSITION_ATTACHMENT
(或只是字符串"attachment"
),如果文件应该提供下载,或ResponseHeaderBag::DISPOSITION_INLINE
(或"inline"
),如果你想要显示文件在浏览器中(例如,您可能希望对图像执行此操作)。
完整的代码示例:
<?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'
);