Размер файла не отображается в файле чтения загрузки PHP

Я использовал приведенный ниже код, чтобы заставить браузер начать загрузку:

//send file
$fileName = basename($fullPath);
$length = filesize($fullPath);

header('Content-Type: application/octet-stream');
header("Content-Transfer-Encoding: Binary");
header('Content-length: ' .  $length);
header("Content-disposition: attachment; filename=$fileName");

readfile($fullPath);

exit;

Все в порядке, за исключением того, что общий размер файла не отображается в браузере (Firefox и Chrome). Я искал в сообществе, а также безуспешно тестировал приведенный ниже код в htaccess:

SetEnv no-gzip не меняется

SetEnvIfNoCase Request_URI ...

Мой веб-сервер — Apache, а PHP — версии 8.3.

Есть ли другой вариант проверки?

Возможно, это не имеет отношения к вашей проблеме, но я почти уверен, что вы сможете полностью удалить Content-Transfer-Encoding. stackoverflow.com/a/7289434/231316

Chris Haas 29.04.2024 23:41

Если в вашем имени файла есть специальные символы, вы также можете рассмотреть возможность его цитирования, на случай, если там что-то будет испорчено.

Chris Haas 29.04.2024 23:43

вы проверили, содержит ли $length правильный размер файла?

Nasser Hajlawi 30.04.2024 01:32

@ChrisHaas Спасибо за ваш комментарий. Я не знаю, что конкретно происходит :)

faeqeh fassihi 30.04.2024 11:19

@NasserHajlawi да, это целое число

faeqeh fassihi 30.04.2024 11:19
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
4
5
51
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Недавно у меня была такая же проблема! Предложите добавить этот заголовок, а не решение htaccess.

//to show file-size in browser
header("Content-Encoding: none");

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