Загруженное имя файла с помощью X-Sendfile

Я использую X-Sendfile для отправки файла вместо readfile. Сценарий, обрабатывающий это, называется download.php и содержит это:

$video_file = '/path/to/file/file.mp4';
header('X-Sendfile: '.$video_file);
header('Content-Type: video/mp4');
header('Content-Disposition: attachment; file=\"file.mp4\"');
exit();

Но проблема в том, что загруженный файл всегда называется "download.php" (155 Мб), и я хотел бы скачать его с именем file.mp4. Я пробовал несколько вещей, как:

header('Content-Disposition: attachment; file="file.mp4"');
header('Content-Disposition: attachment; file=file.mp4');

И все остальные возможности, но все равно загрузка файла в виде download.php.

Мой файл htaccess содержит: XSendFile On

1 ответ

Решение

Вы отправляете неверный заголовок. Свойство filename называется filenameне name:

header('Content-Disposition: attachment; filename="file.mp4"');

См. RFC2616 для подробного описания заголовка.

Другие вопросы по тегам