Прогресс загрузки сеанса PHP и одновременная загрузка

документация по PHP не объясняет, что происходит, когда два файла загружены одновременно в рамках одного сеанса (две загрузки выполняются в двух вкладках браузера).

Есть ли способ отслеживать ход обеих загрузок? Статус первой загрузки теряется при запуске второй?

Спасибо!


person fabiocsg    schedule 20.09.2013    source источник
comment
Вы хотите отслеживать ход обоих на одной вкладке или в каждом файле, отслеживаемом на вкладке загруженных?   -  person Mauro    schedule 20.09.2013
comment
Я хотел бы придумать что-то, что позволит мне отслеживать каждую загрузку файла на соответствующей вкладке.   -  person fabiocsg    schedule 20.09.2013
comment
Итак... вы хотите отслеживать процесс загрузки на стороне клиента?   -  person Mauro    schedule 20.09.2013
comment
Мне нужно отобразить пользователю ход загрузки, если пользователь загружает два разных файла на двух разных вкладках, я хочу иметь возможность отображать ход каждого файла на соответствующей вкладке. Я хотел бы знать, как php справляется с такой ситуацией, используя функцию прогресса загрузки сеанса.   -  person fabiocsg    schedule 20.09.2013


Ответы (2)


Да, можно отслеживать статус двух разных загрузок на разных вкладках, используя функцию PHP Session Upload Progress. Все, что вам нужно сделать, это изменить имя процесса загрузки в обеих формах, изменив параметр value="" скрытого поля имени процесса загрузки.

Например, форма загрузки для вкладки 1 может выглядеть следующим образом:

<form action="upload.php" method="POST" enctype="multipart/form-data">

<input type="hidden" name="<?php echo ini_get("session.upload_progress.name"); ?>" value="tab1">
<!-- notice the value="tab1" above -->

<input type="hidden" name="MAX_FILE_SIZE" value="1000000">
<input type="file" name="myUploadName" />
<input type="submit" />
</form>

Тогда форма загрузки для вкладки 2 может выглядеть следующим образом:

<form action="upload.php" method="POST" enctype="multipart/form-data">

<input type="hidden" name="<?php echo ini_get("session.upload_progress.name"); ?>" value="tab2">
<!-- notice the value="tab2" above -->

<input type="hidden" name="MAX_FILE_SIZE" value="1000000">
<input type="file" name="myUploadName" />
<input type="submit" />
</form>

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

$_SESSION['upload_progress_tab1'] // Progress data for tab 1
$_SESSION['upload_progress_tab2'] // Progress data for tab 2
person data-dan    schedule 04.01.2014

Этот пример может сработать для вас:

http://www.johnboy.com/php-upload-progress-bar/

Вам нужен код клиента (JS) и немного PHP

person Mauro    schedule 20.09.2013
comment
Я хорошо знаю, что существуют разные подходы к достижению того, о чем я просил, но вопрос не в том, есть ли какой-либо альтернативный способ сделать это? ... Это больше похоже на то, как этот метод справляется с этой ситуацией? - person fabiocsg; 21.09.2013