У меня есть PHP-скрипт, в котором пользователь может загрузить изображение. Это изображение хранится во временном каталоге и возвращается пользователю. Затем пользователь может использовать интерфейс javascript для обрезки изображения. (x1,y2)(x2,y2) отправляется сценарию, который используется для обрезки изображения. Затем он возвращается пользователю для другого предварительного просмотра и/или кадрирования. Как только пользователь будет достаточно удовлетворен, он нажмет «Сохранить». Временный файл копируется в оригинал, а временный удаляется. Это не изображения для каждого пользователя, а изображения оборудования. Любой пользователь в организации может заменить любой образ оборудования. Этот подход хорош, но есть несколько проблем:
1) Допустим, пользователь загружает изображение для предварительного просмотра, но затем закрывает окно браузера. У меня останется временный файл. Это может стать проблемой. Конечно, я могу очистить их с помощью CRON, но теоретически у меня может быть куча временных файлов (это некрасиво). Cron также может удалить временный файл пользователя во время редактирования.
2) Чтобы справиться с номером 1, я всегда могу иметь временный файл для каждой единицы оборудования, например, equip1.temp и equip1.jpg. Все загрузки хранятся в equip1.temp, все коммиты переносятся в equip1.jpg. Если два пользователя одновременно пытаются загрузить изображения одного и того же оборудования, это может их испортить (крайне маловероятно + не проблема, но все же некрасиво).
3) Я всегда могу передать изображение туда и обратно (пользователь «загружает» изображение, и оно возвращается как <img src="base64....." />
. Полученные правки + исходная строка base64 отправляются обратно в PHP для обработки). Это решение устраняет проблему с временными файлами, но я заметил, что для отправки изображений в высоком разрешении туда и обратно требуется несколько секунд.
Как бы вы справились с этой ситуацией?
user id
в имя файла, напримерequip1-user123.temp
. - person air4x   schedule 04.10.2012last login
в таблице. По прошествии месяца или двух без входа пользователя в систему удалите его временные файлы. - person air4x   schedule 04.10.2012