Страница 1 из 1

Загрузка файлов (фото)

СообщениеДобавлено: 24 апр 2011, 15:47
nolik
Меня не очень устраивает в с5 то, что она загружает файлы в папочку /files и далее в три подпапочки, т.е. место загруженного файла получается такое files\9313\0360\3467\DSCN1338.jpg уменьшенная копия соответственно files\thumbnails\9313\0360\3467\DSCN1338.jpg
Я бы понял, если бы уровень вложения был один и при этом какие-то удобоваримые названия подпапочек (хотя бы дата). Как это сделать?

Ну и сразу второй вопрос: каким образом организовать, чтобы фотки, что загружаются сразу конвертировались до размеров например 1000px(или 800) по большей стороне? У меня просто много фоток загружаться будет и с этим со всем хотелось бы работать с удобствами, не таская огромный файлы (оригиналы можно даже уничтожать, если пользователи их загружают в полном размере)

Re: Загрузка файлов (фото)

СообщениеДобавлено: 24 апр 2011, 22:45
cmsservice
1. Это связано с хранением версий файлов, т.ч. никак, только если Вы будете свои файлы загружать в отдельную директорию самостоятельно, но тогда забудьте о поддержке их Менеджером файлов. Другой вопрос, чем Вам существующий порядок мешает? Если взаимодействовать с файлами через фреймворк системы, то все предельно прозрачно.
2. Пишите собственное расширение, которое будет делать эту работу и потом загружать файл в общую структуру директорий через объект File.

Re: Загрузка файлов (фото)

СообщениеДобавлено: 24 апр 2011, 23:23
nolik
Константин, по первому вопросу: я всё-равно не понимаю зачем такая вложенность файлов?! То, что работать из Менеджера файлов с ними просто, согласен, но ЗАЧЕМ? Может я чего-то не понимаю, но версию можно было и в названии одной папочки указывать.

Может есть какая-то система в названии этих папочек? Я не смог понять:( Подскажи, пожалуйста. Не могли же умные люди, которые делали cms сделать таким образом от нечего делать, должен быть смысл!

Re: Загрузка файлов (фото)

СообщениеДобавлено: 25 апр 2011, 00:33
Jimmbo
cmsservice писал(а):1. Это связано с хранением версий файлов, т.ч. никак, только если Вы будете свои файлы загружать в отдельную директорию самостоятельно, но тогда забудьте о поддержке их Менеджером файлов. Другой вопрос, чем Вам существующий порядок мешает? Если взаимодействовать с файлами через фреймворк системы, то все предельно прозрачно.
2. Пишите собственное расширение, которое будет делать эту работу и потом загружать файл в общую структуру директорий через объект File.

nolik писал(а):Константин, по первому вопросу: я всё-равно не понимаю зачем такая вложенность файлов?! То, что работать из Менеджера файлов с ними просто, согласен, но ЗАЧЕМ? Может я чего-то не понимаю, но версию можно было и в названии одной папочки указывать.
Может есть какая-то система в названии этих папочек? Я не смог понять:( Подскажи, пожалуйста. Не могли же умные люди, которые делали cms сделать таким образом от нечего делать, должен быть смысл!


to cmsservice: совершенно не верное суждение - с версиями файлом это никак не связано.
to nolik: Для начала попробуйте открыть какую-нибудь папку, в которой лежат 1500 файлов. После этого задумайтесь - что было бы лучше для сервера и для cms - чтобы 1500 файлов лежали в одной папке или же чтобы файлы приблизительно равномерно были распределены допустим по 50 папкам? (соответственно Ваш вопрос про создание папок в files/ с датой так же отпадает - ведь вполне возможно, что за один день человеку нужно будет загрузить на сайт тысячу картинок, то есть они опять же в одной папке все будут).
Названия папок определяются таким образом: генерируется md5 из кода, содержащего такие данные как время создания файла, размер файла, его название и т.п. сгенерированный 12 значный код разделяется по 4 символа и из этих символов создаются названия трех папок. Таким образом файлы примерно равномерно распределяются в директории files/. Второй важный момент с таким распределением файлов Вы не сможете подобрать адрес файла вручную, чтобы скачать его (опять же - если в названии папок содержались версии файла или же дата создания, то подобрать вручную адрес к файлу было бы куда проще).

А если сказать в двух словах - не парьтесь по этому поводу. Просто так от балды в cms concrete5 ничего не делается-всё очень продумано и, может быть, такое распределение файлов для Вас не удобно, но оно для вашего же блага :) просто примите как должное :geek:

Re: Загрузка файлов (фото)

СообщениеДобавлено: 25 апр 2011, 01:03
nolik
принимаю как должное:))
у меня за день будет загружаться 50-100 файлов.
И мне не жалко эти картинки (их всё равно можно тем или иным способом скачать), но внезапно подумалось, что если 4 цифры в названии первой папочки ниже уровнем, чем files/ , то получается, что папочек у меня там может быть не 50, а 9999 ???? :(
Хотя, если бы была нужна секретность, то я этому порадовался бы :)

Re: Загрузка файлов (фото)

СообщениеДобавлено: 25 апр 2011, 08:43
cmsservice
Jimmbo писал(а):...содержащего такие данные как время создания файла, размер файла...

А это разве не связано с версиями файла? Зависимость не прямая (т.е. версия не указывается прямо в пути), но она на поверхности. :D

Re: Загрузка файлов (фото)

СообщениеДобавлено: 25 апр 2011, 15:26
Михаил
Jimmbo писал(а): Для начала попробуйте открыть какую-нибудь папку, в которой лежат 1500 файлов. После этого задумайтесь - что было бы лучше для сервера и для cms - чтобы 1500 файлов лежали в одной папке или же чтобы файлы приблизительно равномерно были распределены допустим по 50 папкам?


100% истина! У друга сайт на другой ЦМС, там все фотки валились в одну папку. Когда количество перевалило за 4000 - пришлось искать метод избавления от тормозов.

Re: Загрузка файлов (фото)

СообщениеДобавлено: 25 апр 2011, 19:31
Jimmbo
nolik писал(а):принимаю как должное:))
у меня за день будет загружаться 50-100 файлов.
И мне не жалко эти картинки (их всё равно можно тем или иным способом скачать), но внезапно подумалось, что если 4 цифры в названии первой папочки ниже уровнем, чем files/ , то получается, что папочек у меня там может быть не 50, а 9999 ???? :(
Хотя, если бы была нужна секретность, то я этому порадовался бы :)


Может быть вам секретность не нужна, а другим нужна:) А такой способ хранения получается универсальным: Вам хранение в трех папках особо не мешает (наверное), а для других это было бы большим плюсом, что у файлов есть неплохая защита от скачивания без ведома владельца сайта:) А по поводу 9999 папок - я код досконально не изучал, который создает эти три папки, но догадываюсь, что разработчики concrete5 всё же сделали данный способ таким, чтобы файлы распределялись по папкам максимально эффективно.