@Alk90
php, mysql, jquery, css, html, api

Как лучше загружать изображения?

Всем привет! Вопрос касается как php, так и mysql.
По какой логике лучше загружать изображения в таком случае?
1. Пользователи могут загружать изображения в пост, до 20 штук. Изначально была такая система:
через ajax загружались картинки и сохранялись в папке temp, из нее же изображение и выводилось сразу же на страницу (перед сохранением поста).
2. При сохранении самого поста в массиве images[] отправлялись имена картинок, полученные в первом шаге через ajax. Каждая картинка искалась в папке temp а затем обрезалась в нужных разрешениях (6 штук) и сохранялась уже в рабочие директории и информация о ней сохранялась в БД с привязкой к только что созданному посту.

Проблема этого способа в том, что пользователь сначала ждет загрузки изображений, а затем долго ждет сохранения поста, ведь при загрузке 20 картинок, в сумме нужно создать 120 изображений.

Решил пойти другим путем:
1. При загрузке сразу обрезать изображения и ложить их в рабочие директории под нужными разрешениями, при этом появилась необходимость сразу же и сохранять информацию о изображении в БД не привязывая к какому либо посту (для того, чтобы кроном, периодически удалять те картинки, которые пользователи так и не сохранили вместе с постом).
2. При сохранении поста, также ищем имена изображений в БД и привязываем их к ID поста.

Но тут другая проблема при редактировании поста, когда нужно проверить удалил ли пользователь какое-то изображение или добавил новое или и удалил старое и добавил новое одновременно. Получается мне нужно выполнить действие:
Прилетели имена картинок в images[], все картинки редактируемого поста отвязываем от него, назначив им в поле post_id значение 0. И сразу же после этого назначаем всем картинкам из массива images[] значение ID редактируемого поста. Остальные же будут удалены по крону в 24:00 если они не привязаны ни к какому посту. Так вот, проблема в том, что между этими двумя действиями редко, но может сработать крон, и удалить нужные изображения вместе с ненужными.

Либо я вообще придумал не правильный алгоритм загрузки, подскажите плз как можно лучше это организовать...
  • Вопрос задан
  • 148 просмотров
Пригласить эксперта
Ответы на вопрос 1
@Vasiliy_M
Начал хорошо:
1. При загрузке сразу обрезать изображения и ложить их в рабочие директории под нужными разрешениями, при этом появилась необходимость сразу же и сохранять информацию о изображении в БД не привязывая к какому либо посту (для того, чтобы кроном, периодически удалять те картинки, которые пользователи так и не сохранили вместе с постом).
я точно также сделал у себя.

Дальше треш и вообще не понятно.

проблема в том, что между этими двумя действиями редко, но может сработать крон, и удалить нужные изображения вместе с ненужными
проблемы никакой быть не должно - записывай дату добавления изображения и кроном ищи изображения старше часа, например:

$sql = 'SELECT * FROM t 
                WHERE post_id IS NULL
                AND file_date < (NOW() - INTERVAL 60 MINUTE)
                ORDER BY id ASC LIMIT ?i';
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы