Скачать файл Excel с PHP через https

Я собираюсь взять вживую веб-приложение, над которым я работал, и сейчас, конечно, обновляю код, чтобы все, что отлично работало на моем локальном хосте, работало на защищенном сервере. Одна из задач, которую выполняет это приложение, - создание и загрузка файлов. Все файлы создаются и записываются на сервер, но файлы .xls, .csv и .json загружаются без данных, даже если данные находятся в файлах на сервере. Файлы .xml, .zip и .sql загружаются с точными данными. Файл .xls или .json, содержащийся в файле .zip, вполне подойдет. Эта проблема не связана с IE, поскольку я использую Chrome. Также пробовал Safari с теми же результатами.

Вот что я делаю, чтобы загрузить Excel:

$excel_content = file_get_contents($download_file_name);
header("Content-Type: application/octet-stream");
header("Content-Disposition: attachment; filename=\"".$file_name);
header("Content-Transfer-Encoding:  binary");
header("Pragma: no-cache");
header("Expires: 0");
print chr(255).chr(254).mb_convert_encoding($excel_content, 'UTF-16LE', 'UTF-8');

Вот что я делаю, чтобы загрузить XML:

$xml_content = file_get_contents($download_file_name);
header("Content-Type: application/xml");
header("Content-Disposition: attachment; filename=\"".$file_name);
header("Content-Transfer-Encoding: UTF-8");
header("Pragma: no-cache");
header("Expires: 0");
print $xml_content;

Может ли кто-нибудь понять, почему Excel работает на моем локальном хосте, но не на моем сервере по протоколу https? Если это важно, у меня включен openssl, что подтверждается файлом info.php на сервере.

print chr(255).chr(254).mb_convert_encoding($excel_content, 'UTF-16LE', 'UTF-8'); что ты здесь делаешь?
user10226920 05.10.2018 00:41

Команда печати загружает файл Excel. Команда mb_convert_encoding (которой предшествует знак порядка байтов UTF-16LE - chr (255) .chr (254)) позволяет символьным данным utf-8 из MySQL правильно отображаться в Excel. Я нашел это решение в StackOverflow, и оно работает на моем локальном хосте. Избавление от mb_convert_encoding на моем живом сервере не имело никакого значения.

kalinma 05.10.2018 23:30
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать 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 и хотите разрабатывать...
0
2
155
0

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