Я создаю онлайн-игру на PHP, где пользователи могут создавать игровых персонажей. Каждый персонаж может иметь загруженный пользователем портрет. Игрок может одновременно иметь несколько персонажей, и картинки для них можно менять в любое время. Естественно, изображения должны быть изменены и повторно сжаты, чтобы избежать огромных файлов. Вот моя проблема:
Когда игрок изменяет свои данные (среди них изображение), а затем нажимает «сохранить», начинается проверка на стороне сервера. Он проверяет такие вещи, как неуникальные имена персонажей, пустые обязательные поля и т. Д. найдено, они отображаются. В этом случае форма должна быть предварительно заполнена данными, введенными игроком, поэтому ему нужно только изменить ошибочный бит, а не вводить все заново. Но как сохранить картинку в таком «временном» состоянии?
Я не могу предварительно заполнить поле загрузки файла, браузеры не позволяют этого. Если я сохраню его во временном файле, картинка должна быть очищена в какой-то момент, потому что проигрыватель может просто закрыть свой браузер и прервать весь процесс. Когда это должно быть? И какое имя файла мне выбрать для временного файла? Если игрок открывает один и тот же персонаж для редактирования на двух вкладках браузера, они не должны конфликтовать (каждая из них должна иметь свою собственную копию).
Как бы вы решили эту проблему?