У меня есть загрузка изображения для слайд-шоу, и пользователи постоянно загружают файлы размером 2 МБ плюс. Файлы под этим размером работают нормально, но файлы по размеру вызывают то, что выглядит как тайм-аут браузера.
Вот мои настройки php ini:
Эти настройки находятся в самом файле конфигурации, и я могу их изменить напрямую. Изменения появляются при использовании phpinfo ().
Я запускаю сервер Apache и php 4.3.9 (выбор клиента, а не мой). Лимит запросов Apache установлен на значение по умолчанию, которое, как мне кажется, составляет около 2 ГБ?
Когда я использую сетевой монитор firebug, похоже, что я не получаю полный ответ от сервера, хотя я не слишком разбираюсь в использовании этого инструмента. Кажется, что время составляет около 43 секунд.
Вся помощь, которую я могу найти в сети, указывает на вышеуказанные настройки в качестве виновников, но все эти настройки намного выше, чем этот 2 МБ-файл и 43-секундный тайм-аут.
Любые предложения, по которым я могу перейти отсюда, чтобы решить эту проблему?
Ниже приведены соответствующие настройки php ini из phpinfo (). Дайте мне знать, если мне нужно больше писать.
Убедитесь, что в php.ini отображается сообщение об ошибках: display_errors = On ; это может дать вам понять, что происходит. Серверы производства обычно (должны) отключать отчет об ошибках.
У меня недавно была аналогичная проблема, и для меня работала настройка memory_limit. Если вы читаете содержимое файлов в переменных, каждая переменная занимает примерно столько же памяти, сколько и размер файла, что увеличивает требования к памяти сценариев.
Где эти настройки? Если вы используете .htaccess
то ваша конфигурация Apache может не позволить вам переопределить эти параметры.
Я бы предложил проверить с помощью phpinfo (), если эти настройки действительно применяются или нет:
<?php phpinfo(); ?>
Если это общий хост, ваш хост мог бы установить ограничение, чтобы переопределить ваш.
В противном случае попробуйте сделать ограничение POST выше, чем размер загрузки файла. AFAIK, закачки отправляются.
Если проблема связана с тем, что хост переопределяет ваш тайм-аут, вы можете искать хост, который все еще использует Apache 1: в Apache 1 локальный .htaccess переопределяет глобальные настройки даже для таймаута.
В противном случае есть десятки Java-апплетов, доступных всего за несколько долларов (Google it). Они разбивают файл, загружают детали и прозрачно складывают части.
Это гарантированное исправление таймаута и имеет дополнительное преимущество, позволяющее пользователям приостанавливать и возобновлять загрузку, видеть прогресс и т. Д.
(Flash-пользователи не имеют этого преимущества.)