Код PHP/Apache для загрузки файла с хоста - раньше работал - теперь не работает как с Chrome, так и с Firefox.Php

Кемеровские программисты php общаются здесь
Ответить Пред. темаСлед. тема
Гость
 Код PHP/Apache для загрузки файла с хоста - раньше работал - теперь не работает как с Chrome, так и с Firefox.

Сообщение Гость »


Запуск PHP/Apache на локальном хосте. Да, очень старые версии (Apache/2.4.10 (Win32) PHP/5.4.34), но код работает уже много лет. Я полагался на модуль Xsendfile Apache, но он молча провалился. Изменено использование явных вызовов header() и эхо-содержимого. Это приводит к тому, что Chrome говорит: «Не удалось завершить загрузку». А Firefox говорит: «Не удалось сохранить example.zip.part, поскольку исходный файл не удалось прочитать. Повторите попытку позже или обратитесь к администратору сервера."

Chrome 117.0.5938.89 (официальная сборка) (64-разрядная версия), Firefox 117.0.1 (64-разрядная версия) в Windows 10.

Вот код:

if (false && in_array('mod_xsendfile', apache_get_modules())) { // Несмотря на документацию в https://tn123.org/mod_xsendfile/beta/, простое кодирование // путь с urlencode приводит к тому, что X-Sendfile вызывает внутреннюю ошибку сервера. // См. http://stackoverflow.com/questions/2676 ... ile-expect $encoded = str_replace('%2F', '/', rawurlencode($pathname)); заголовок("Тип контента: $mime_info"); если ($attachment === true) { $dispo = 'вложение'; } еще { $dispo = 'встроенный'; } header("Content-Disposition: $dispo; filename=\"$basename\""); // xsendfile заставляет Apache генерировать заголовки и тело для наилучшего поведения при загрузке. header("X-SendFile: $encoded"); } еще { // По крайней мере, в одном сообщении где-то говорилось, что это хорошие заголовки для загрузки вручную заголовок("Прагма: общедоступный"); заголовок("Срок действия истекает: 0"); header("Cache-Control: must-revalidate, post-check=0, pre-check=0"); header("Cache-Control: Private", false); // требуется для некоторых браузеров заголовок("Тип контента: $mime_info"); если ($attachment === true) { header("Content-Disposition: Attachment; filename=\"$basename\""); } header("Content-Length: " .jpg("$pathname"); ob_clean(); румянец(); $data = file_get_contents("$pathname"); эхо $данные; } Я просто добавил «ложный &&» в «if», чтобы заставить его не использовать модуль Xsendfile. И, как я уже сказал, это изменило поведение с тихого сбоя в Chrome (в пользовательском интерфейсе нет ничего, указывающего на то, что была предпринята попытка загрузки) на начало загрузки (скажем, 0/32,1 КБ, осталось 38 секунд на некоторое время), затем, наконец, «Не удалось завершить загрузку».

Я в полном замешательстве! Этот же код раньше работал на моем ПК, загружая тот же файл (с использованием модуля Xsendfile). Обычно я передаю $attachment = true; но также попробовал это сделать с $attachment = false, без каких-либо улучшений.

Как отмечается в комментариях, прагмы и элементы управления кешем были просто скопированы из какого-то поста. Он работает над общедоступным сайтом последние 12 лет или около того...
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ, комментарий, отзыв

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Редактирование Richtext от CuteSoft не работает в модальном режиме Firefox
    Гость » » в форуме Javascript
    0 Ответы
    1 Просмотры
    Последнее сообщение Гость
  • Редактирование Richtext от CuteSoft не работает в модальном режиме Firefox
    Гость » » в форуме Html
    0 Ответы
    1 Просмотры
    Последнее сообщение Гость
  • Моя версия браузера Chrome — 117.0.5938.89. Как я могу загрузить ту же версию веб-драйвера Chrome?
    Гость » » в форуме JAVA
    0 Ответы
    1 Просмотры
    Последнее сообщение Гость
  • Отложенная загрузка цветовых переменных не определена в Tailwind CSS и в Chrome DevTools.
    Гость » » в форуме CSS
    0 Ответы
    1 Просмотры
    Последнее сообщение Гость
  • Широковещательный приемник загрузки завершен в Android 11
    Гость » » в форуме Android
    0 Ответы
    1 Просмотры
    Последнее сообщение Гость

Вернуться в «Php»