upload files no write in SESSION php variable

Hello!

i have uploader code,it's work
https://prnt.sc/uqks9u

Files all upload good! in php code
https://prnt.sc/uqkuaq
https://prnt.sc/uqkuqo

all good, but i try write files in SESSION php variable
https://prnt.sc/uqkw3o

i load four files , but in variable write one file name.
https://prnt.sc/uqkx5t

Why does it work like that? have php example?

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

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

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

Tagged:

Comments

  • edited September 30

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

  • edited September 30

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

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

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

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

    файлы:
    https://prnt.sc/uqmwdq

    результат:
    https://prnt.sc/uqnsyn

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

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

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

  • как можно сделать последовательную загрузку файлов

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

  • edited October 1

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

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

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

Sign In or Register to comment.

Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!