Собственно говоря встал вопрос ребром.
Сразу скажу что меня не устраивает в Upload module:
1. Нет возможности структурировать загружаемые файлы (все они сваливаются в бесхозную кучу)
2. Нет возможности ограничивать доступ к отдельным файлам
3. Все файлы лежат, так сказать, в одном адресном пространстве и одинаковые имена файлов недопустимы даже если они загружены разными нодами
4. При удалении ноды не удаляются связанные с ней файлы.
Одного модуля, который бы мог качественно всех устроить я не встречал, потому на разных сайтах и разных версиях ядра я использовал разные комбинации:
На 4.0 у меня была связка:
для файлов fscache + filestore2. Плюсы: организованное хранилище файлов, страница со списком и рейтинговые блоки. Минусы: файло складывается в систему подкаталогов, именуемую на основании MD5 хэша что усложняет "ручную уборку".
для картинок image + img_assist - почти визифиг
На 4.7 я использую:
для файлов disknode + самописный disknode_page (генерирует страницу со всеми дискнодами и блок Top10). Плюсы: область действия ссылки ограничена нодой и соответственно правами на доступ к ней, есть страница со списком и рейтинговый блок (уже сам дописывал). Минусы: файло нужно заливать самому по FTP но благодаря этому добавляется ещё один плюс: файло легко структурировать.
image + image_gallery + img_assist для картинок - как и раньше почти визифиг.
На 5.5 использую CCK + FileField + Image. Плюсы: легко структурировать закачанные файлы на основании настроек типов контента. Минусы: никакого намёка на визифиг, жёстко заданные поля.
Как быть с 6-кой? Уж очень хочется структурированности, разделения адресных пространств, ограничения доступа и не такой жёсткости как в CCK.
Комментарии
Надо полагать, что filefield будет и для шестерки.
Да, CCK и иже с ним обещают быть, но очень хочется немного иного. filefield подходит для типов контента с заранее известной структурой, но вот если я заранее не знаю сколько и каких файлов будут вставляться и как отображаться, то тут filefield не совсем то что надо.
А ведь самое простое и само собой напрашивающееся решение - это доработать модуль Upload, чтобы он для каждой ноды создавал отдельный подкаталог и все файлы лил туда. Так и проще за ними следить и потом подчищать при удалении ноды (пусть даже и ручками) и конфликты имён разршатся. В общем очень нужное дело, вот только кто-бы взялся)
А кто вообще какими связками пользуется?
по каждому пункту:
1. структурируются файлы в бд, при помощи привязки к нодам. То, что не нужно создавать лишние папки и т.п. при добавлении файла - большо плюс!
2. х.з. не заморачивался. Но мне кажется такую возможность добавить несложно.
3. не вижу ничего плохого в этом, но вам виднее
4. при удалении нодов файлы удаляются.. по крайней мере должны
> То, что не нужно создавать лишние папки и т.п. при добавлении файла - большо плюс
это большой минус - так как .максимальное количество файлов в одной системной папке не бесконечно!
В шестерке файлы больше не привязаны к ноде.
kiev1, как не бесконечно?
Natalie, а к чему они привязаны?
Clubwave, к пользователю
Из changelog:
File handling improvements:
* Entries in the files table are now keyed to a user, and not a node.
* Added re-usable validation functions to check for uploaded file sizes,
extensions, and image resolution.
* Added ability to create and remove temporary files during a cron job.
и чего теперь? удаляются только если удаляется пользователь?
не знаю - не бесконечно и все, сколько максимум я не знаю
ну так и папок колличество не бесконечно.. ааа
И место на жестком диске платное на хостингах. Кошмар. А вот как же всае-таки они удаляются в D6?
Поставьте шестерку и посмотрите сами, что там удаляется и куда. А то совсем обленились
Конечно все прикрепленные к ноде файлы удаляются при ее удалении!
Дело в том, что в шестерке помимо таблицы files c привязкой файлов к пользователям, есть еще и таблица upload в которой содержится информация о том к каким нодам какой файл прикреплен.