2015-04-25 3 views
0

Использование session_set_save_handler в PHP 5.4.40, я создал обработчик сеанса, который хорошо работает ... кроме данных session.upload_progress при загрузке файла.Хранение данных PHP session.upload_progress в базе данных

Мой обработчик сеанса полностью игнорирует загружать данные о ходе, и я могу только показаться, чтобы получить данные о ходе работ сэкономить на всех, когда:

  • session.save_handler = файлы; и
  • файл сеанса сохраняется в том же пути, как session.save_path

Можно ли сохранить session.upload_progress данные в базе данных?

Обновление: как и на PHP 7, это все еще кажется проблемой. Поэтому я открыл PHP 7 Bug #74131

ответ

0

документация PHP говорит, что это here:

Внимание: запрос буферизация веб-сервера должен быть отключен, чтобы это работало правильно, иначе PHP может увидеть загрузку файлов только один раз полностью загруженном , Известно, что серверы, такие как Nginx, заполняют большие запросы.

Так что вы хотите сделать, может быть невозможно ...

+0

Спасибо, но я не уверен, что понимаю: данные о проделанной работе прекрасно записываются в файл - почему другое назначение записи имеет значение? – Pancho

+0

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

+0

yep, session.upload_progress записывает в файл «normal»/tmp/sess _... », но полностью игнорирует мой обработчик сеанса. Таким образом, данные загрузки записывают 100% в файл, но не записываются в базу данных. Я использую мой обработчик сеанса, $ _SESSION возвращает всю информацию о сеансе EXCEPT session.upload_progress. Если нет возможности исправить эту проблему, то, насколько я вижу, обработка session.upload_progress не ведет себя согласованным образом с нормальным $ _SESSION и делает механизм загрузки файлов PHP бесполезным для «более чем 1» веб-серверов. – Pancho

0

@Pancho Я переключил использовать PECL uploadprogress. Работает отлично. Необходимо использовать mod_php, а не fastcgi/fpm. Все сеансы пользователей находятся в db.

+0

благодарит за то, что впустил меня в известность Эрик! Какая версия PHP вы используете? Является ли она 7.x или еще 5? – Pancho

+0

работает 5.6.xxx – eric

+0

очень спасибо Eric - Наш подход APCu также работает на 100% на 5.6. К сожалению, мне 7, с которыми я боюсь (проверьте ошибку/проблему, которую я открыл на PHP выше, если вы заинтересованы, и не стесняйтесь проголосовать за эту проблему как важную, чтобы помочь получить сцепление, если вы согласитесь, что это :)) – Pancho

Смежные вопросы