Symfony BinaryFileResponse 设置文件名

2022-01-05 00:00:00 file php symfony controller

当文件由 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 SymfonyComponentHttpFoundationBinaryFileResponse;
use SymfonyComponentHttpFoundationResponseHeaderBag;

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

相关文章