dzheka3d
@dzheka3d

Как не перезаписать картинки при сохранении?

Всем привет! Уже не первую неделю передо мной стоит задача, натолкните плз на мысль алгоритма редактирования.
На кулинарном сайте, в рецепте есть 3 шага, в каждом по одной картинке. Каждая картинка называется именем рецепта (в транслите) плюс номер шага:
/image/kurica_s_gribami-1.jpg
/image/kurica_s_gribami-2.jpg
/image/kurica_s_gribami-3.jpg

В базе их имена хранятся в отдельном поле в записи со своим шагом.
При редактировании шагов, картинка может измениться, может остаться прежней, могут быть добавлены или удалены шаги (добавлены в любое место или удален любой шаг) также шаги могут поменяться местами.
Допустим я добавляю после первого шага еще один, выходит, мне нужно сохранить новую картинку под именем /image/kurica_s_gribami-2.jpg соответственно та, которая была под этим именем станет называться /image/kurica_s_gribami-3.jpg и т.д.
Какой алгоритм должен быть, чтобы не перезаписать старую картинку именем /image/kurica_s_gribami-2.jpg учитывая, что точно также может быть и удален любой шаг, а значит нужно будет пересохранять в обратную сторону.
Даже изначально изменить имена тех картинок, которые уже были в базе и на сервере, не получается, потому как при
rename(/image/kurica_s_gribami-2.jpg, /image/kurica_s_gribami-3.jpg);
будет перезаписана третья картинка.
  • Вопрос задан
  • 319 просмотров
Решения вопроса 1
VladimirAndreev
@VladimirAndreev
php web dev
зачем вообще это извращение? у шага, на сколько я понимаю, есть свой id, так что мешает хранить картинки с этим id в качестве имени?
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@zhainar
Гуглю за вас
имхо удобнее будет хранить картинки в отдельной папке рецепта
не
/image/kurica_s_gribami-n.jpg,
a
/image/kurica_s_gribami/n.jpg.

И наверное, лучше порядок хранить в отдельном поле images_order - просто перечисление порядка через запятую, типа "1.png,2.png,10.png,5.png".
А дальше добавление и удаление просто дело техники.
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы