Я использую CURL для загрузки большого файла с внешнего URL и сохранения его на моем сервере. Это может занять до нескольких минут. Хотя загрузка работает Я использую curl_setopt ($ ч, CURLOPT_PROGRESSFUNCTION .. запускать анонимную функцию, которая периодически обновляет свой $ _SESSION переменной [ «»] download_progress с текущей информацией загрузки.PHP: Как использовать сеанс на одной странице при загрузке другой страницы с sesson
Теперь все это происходит в upload.php файле и в то время как пользователь ждет файла для загрузки я использовать JavaScript для запроса progress.php страница, которая содержит следующий простой код:
session_start();
echo $_SESSION['download_progress'];
Это позволяет мой Javascript код для отображения информации о
Кроме того, что это не работает ,
Страница «progress.php» не загружается, пока «upload.php» не закончит загрузку (другими словами, обе страницы загружаются только после завершения загрузки файла), и это нехорошо. Функция session_start() каким-то образом блокирует загрузку страницы «progress.php». Я использую свой собственный сервер (apache + php 5.4), поэтому у меня есть все права администратора.
Как я могу решить эту проблему? Я мог бы использовать некоторое уродливое обходное решение, например, записывать информацию загрузки в файл txt вместо переменной сеанса, а затем использовать javascript для прямого чтения этого txt-файла, но я бы этого не хотел.
Благодаря
Насколько я знаю, что вы должны работать, если оба файла не вызывают из того же файла. Если, например, у вас есть index.php? Some_setting_to_load_upload.php и index.php? Some_setting_to_load_progress.php Вы тестировали его онлайн, чтобы узнать, есть ли у вас другой результат? –