(РЕШЕНО) imagefield и уникальность имени файла

Главные вкладки

Аватар пользователя vitvas vitvas 27 марта 2009 в 11:07

Здравствуйте, ув. Друпаллеры

Есть тип ноды с полем imagefield. Когда материалов этого типа было немного, проблемы видно не было. Но... с увеличением количества нод этого типа всплыл нюанс: если пользователь в ноде добавляет с изображением, имя файла которого наблюдалось в ранее загруженных изображениях, отображается картинка прежняя.

Как добиться уникальности имени файла при его загрузке.

Заранее благодарен

Комментарии

Аватар пользователя vitvas vitvas 27 марта 2009 в 11:47

Только что почитал об этом модуле на drupal.org. К сожаленью, на файлы поля imagefield действие этого модуля не распространяется Sad

Спасибо

Аватар пользователя glu2006 glu2006 27 марта 2009 в 12:45

Скорее всего дело в настройках, насколько я помню где-то в имаджфилд или в upload была галочка что делать если файл с таким именем существует (заменить, добавить индекс).
т.е. есть файл img.jpg и заливать еще такой же то будет либо замена либо img_1.jpg
Во всяком случае у меня никогда не возникало такой проблемы если замена отключена.
А вот если происходит замена файла, то возможно что не переписывается пресет imagecache и вы имеете новую картинку в папке files/images а в папке files/imagecache находится пресет от старой картинки. (такая проблема была)
Как вариант попробуйте удалить файлы из папки с пресетами (files/imagecache/имя пресета/),
или давайте больного в студию посмотрим что и как.

Аватар пользователя vitvas vitvas 27 марта 2009 в 13:20

Я использую cck imagefield, и, насколько понимаю, к upload'у этот модуль не имеет никакого отношения, поэтому настройки аплоада не смотрел.

По настройкам самого imagefield опции "что делать, если такой файл существует" не нашел. Также такого нет в imagecache.

Да, скорее всего проблема возникает именно через imagecache. И в нем нет необходимых настроек.

Так как сайт на ходу, я не могу удалить файлы из папки с пресетами (пользователи не поймут, так как это их материалы).

Что же делать?

Аватар пользователя Serg_M Serg_M 27 марта 2009 в 13:45

Стоит только imagefield, при добавлении файла с таким-же названием преобразует его в имя_файла_(цифра).jpg. Вроде специальных настроек небыло. Так что либо imagecache виноват, либо глюк. Попробуйте протестировать на "чистом Друпале", вначале поставить imagefield (протестировать), затем добавить imagecache (протестировать). Хотя связка вроде распространенная, должно быть много инфы по ней на сайте...

Аватар пользователя vitvas vitvas 27 марта 2009 в 14:16

Кажись решил проблему...

Хорошо проанализировав проблему понял, что сначала срабатывал imagecache (который, если есть уже пресет с таким именем файла, не создавал новый), а уж потом срабатывал imagefield, который как раз изменял имя файла в случае, если такой имеется.

Решил банально. Когда-то для каких-то целей (уже и не вспомню) мне подсказали модуль ModuleWeight (http://drupal.org/project/moduleweight), который позволяет задать вес модулю.

Вот и свою задачу я решил с помощью этого модуля. Просто задав побольше вес модулю imagefield (сначала уникальное имя файла, и imagecache уже работает с уникальным именем). Тест на быструю руку подтвердил мою теорию - ЗАРАБОТАЛО!!!

Спасибо всем учасникам обсуждения, поставили мозги на место Smile