upload files no write in SESSION php variable

Hello!

i have uploader code,it’s work

Files all upload good! in php code

all good, but i try write files in SESSION php variable

i load four files , but in variable write one file name.

Why does it work like that? have php example?

Здравствуйте! Спасибо вам за великолепную библиотеку!

Собрал uploader , все файлы сохраняются на диск, все отлично, но у меня не выполняются некоторая часть кода, например запись в переменную сессии как указывал в скринах выше. Загружаю 4е файла, а записывается один и то всегда рандомно как-то, то первый то третий запишет. Даже если убрать пример с переменной сессии, я пытаюсь записать в json формате в базу, опять же тут записывает 2 из 4х или 3 из 4х. Код:

Php не успевает выполнять? или параллельно не работает? Подскажите в чем проблема и есть ли примеры

сделайте $fileTMP уникальной. например добавьте timestamp.
в данном случае она одинакова во всех сессиях и поэтому при параллельном исполнении файлы записываются друг на друга.

Просто код не доходит до $fileTMP, вы неверно поняли.

Файлы отлично сохраняются, как надо и ничего не перезаписывается.

Я пытаюсь сохранить в БД данные о этих файлах, условно галерея для определенного пользователя. Ссылки на файлы я хочу хранить в json в БД.
Я записываю в массив и потом его сохраняю, если массив не пустой то добавляю

Это я описал как хочу сделать.
Просто даже элементарная запись в сессию не записывает названия всех 4-х файлов.
Сделал проще, пока без физического сохранения файлов, закомментировал все, оставил простой код записи названия файла в сессию:

файлы:

результат:

Как видно нету записи о tvr3.jpg

если файлы нормально доходят до сервера, то клиентская сторона функционирует нормально.
касаемо проблемы записи названий, то похоже, что это связано с многопоточностью.
в промежутке между $player->get и $player->save другой поток делает свою запись и это название теряется.

@intregal , да клиент отлично отрабатывает, а как можно сделать последовательную загрузку файлов, один за другим, а не асинхронно(многопоточно)?

как можно сделать последовательную загрузку файлов
можете выставить опцию multiple:false и отправлять файлы по одному.
либо вместо $player->get читать содержимое папки с файлами.

@intregal , Спасибо огромное за наводку!
Использовал событие onUploadComplete, после загрузки читаю папку и записываю, все отлично работает.

Было бы здорово если ввели бы параметр неасинхронной загрузки, т.е. в очередь.

Спасибо Вам еще раз!