2015-03-07 13 views
8

có thể đặt tên tệp riêng khi tệp được bộ điều khiển Symfony2 trả về thông qua phản hồi BinaryFileResponse không?Symfony BinaryFileResponse đặt tên tập tin

+0

sử dụng '$ response-> headers-> set ('Content-Disposition', sprintf ('tập tin đính kèm; filename = "% s"', $ filename)); ' –

Trả lời

22

Có. Lớp BinaryFileResponse có phương thức setContentDisposition() lấy tên tệp làm đối số thứ hai.

Đối số đầu tiên là cách gửi tệp. Nó có thể là ResponseHeaderBag::DISPOSITION_ATTACHMENT (hoặc chỉ là chuỗi "attachment") nếu tệp phải được cung cấp để tải xuống hoặc ResponseHeaderBag::DISPOSITION_INLINE (hoặc "inline") nếu bạn muốn tệp được hiển thị trong trình duyệt (ví dụ: bạn có thể muốn thực hiện việc này bằng hình ảnh) .

Một mã đầy đủ ví dụ:

<?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' 
); 
Các vấn đề liên quan