问题描述
当Symfony2控制器使用BinaryFileResponse响应返回文件时,是否可以设置自定义文件名?
Is it possible to set a custom filename when the file is returned by a Symfony2 controller using a BinaryFileResponse response?
推荐答案
是. BinaryFileResponse
类具有方法setContentDisposition()
,该方法将文件名作为第二个参数.
Yes. The BinaryFileResponse
class has a method setContentDisposition()
that takes the file name as the second argument.
第一个参数是文件的传递方式.如果要提供文件下载,则可以为ResponseHeaderBag::DISPOSITION_ATTACHMENT
(或仅为字符串"attachment"
),如果希望在浏览器中显示文件,则可以为ResponseHeaderBag::DISPOSITION_INLINE
(或"inline"
).例如,对图像进行此操作.)
The first argument is the way the file should be delivered. It can be ResponseHeaderBag::DISPOSITION_ATTACHMENT
(or just the string "attachment"
) if the file should be offered for downloading, or ResponseHeaderBag::DISPOSITION_INLINE
(or "inline"
) if you want the file to be shown in the browser (you may want to do this with images, for example).
完整的代码示例:
<?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'
);
这篇关于Symfony BinaryFileResponse设置文件名的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!