Любая идея, как загрузить фото на сайт сохранить там фото? - PullRequest
4 голосов
/ 02 декабря 2010

это больше вопрос, связанный с архитектурой, извините, если я задаю неправильный стек.

они кладут их в большую кучу в папке? как

$ uid. $ Md5 (случайный). $ Name сохранить в одном папка

folder/5231.124wdadace123214.arandomname.jpg
folder/42.15125dawdaowdaw232.arandom2name.png
folder/etc

или

$ UID / $ md5 (случайная). $ Имя

5231(uid)/12421adwawda2321.arandomname.jpg
42/15125awdawdwadwa232.arandom2name.png
etc/2323awdwadwadaw.logo.png

Что я думаю здесь, второй лучше?
потому что в Windows у меня много картинок в одной папке
и да, требуется время, чтобы открыть его.

Ребята, вы не знаете, как они хранят файлы?

Ответы [ 5 ]

1 голос
/ 02 декабря 2010

Я написал функцию для своих сайтов, которая преобразует идентификаторы пользователей в двухуровневую иерархию подкаталогов, ограничивающую подкаталоги 1000 на каждом уровне.

function get_image_dir($gid) {
    $d = str_split(str_pad($gid, 6, "0", STR_PAD_LEFT), 3);
    $wdir = "/images/members/" . $d[0] . "/" . $d[1] . "/" . $gid;
    return $wdir;
}

(на самом деле я добавляю третий уровень с необработанным идентификатором пользователядля обработки ролловера на 1 000 000

/images/members/000/001/1
/images/members/000/002/2
...
/images/members/999/999/999999
/images/members/000/000/1000000
/images/members/000/001/1000001

В этих подкаталогах я дополнительно разделяю на основе

  1. альбомов (организованных участниками)
  2. различных размеров (дляразличные места на сайте

Окончательная структура выглядит примерно так:

/images/members/000/001/1/album1/original
/images/members/000/001/1/album1/50x50
/images/members/000/001/1/album1/75x75
/images/members/000/001/1/album1/400x300

Функция str_split(str_pad()) в функции, вероятно, не оптимальна, но пока она работает.

1 голос
/ 02 декабря 2010

Это зависит главным образом от файловой системы. Для современной файловой системы, такой как NTFS или ext3, хранение большого количества файлов в одном каталоге не является проблемой, но некоторые старые файловые системы не могут справиться с этим.

Тем не менее, все же может быть хорошей идеей разбить файлы на подкаталоги по какой-то схеме, просто чтобы обеспечить управление ими с помощью различных инструментов (которые могут иметь свои проблемы с огромными каталогами), таких как резервное копирование. Кстати, открытие каталога в проводнике Windows считается таким случаем.

0 голосов
/ 02 декабря 2010

Я делаю это, используя папку, содержащую идентификационные номера,

/img/0-100/1
/img/101-200/102

Это даст вам простой способ поиска ваших изображений, а папка останется довольно маленькой. И нет никакого расширения, потому что я сохраняю это в базе данных.

0 голосов
/ 02 декабря 2010

Да, большое количество файлов в одной папке может замедлить поиск файлов в этой папке. По крайней мере, в основных ОС. Теоретически так быть не должно.

Другие сайты тоже используют дату. Не только идентификаторы пользователя или изображения. Просто еще один способ сделать то же самое.

0 голосов
/ 02 декабря 2010

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

...