Хранение изображения / данных в MySQL и соглашения об именах - PullRequest
0 голосов
/ 18 декабря 2011

Какие существуют идеи для хранения изображений на веб-серверах.Im Взаимодействие с PHP и MySQL для приложения.

Вопрос 1

Изменим ли мы имя физического файла на a000000001.jpg и сохраним его в базовом каталоге или оставим неуправляемый файл пользователяимя, то есть «Джастин Бейбер найден dead.jpg»?Например,

wwroot/imgdir/a0000001.jpg

и все метаданные в базе данных, такие как FileName и ReadableName, Size, Location и т. Д. Мне нужно создать собственный Filemanager и просто взвеситьнекоторые плюсы и минусы базовой структуры хранения изображений.

Вопрос 2

Как бы защитить изображение от загрузки, если мое приложение / база данных не настроило его для публикации/ public?

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

1 Ответ

3 голосов
/ 18 декабря 2011

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

Во всех случаях я бы переименовал файлы в нижний регистр и заменил пробелы подчеркиванием (или дефисом)

Justin Beiber Found dead.jpg => justin_beiber_finally_dead.jpg

Если фотография относится к статье или к чему-то конкретному, вы можете добавить к ней идентификатор статьи, например, 123_justin_beiber_found_dead.jpg.В качестве альтернативы вы можете хранить изображения в специальной папке для статьи, например, /images/123/justin_beiber_found_dead.jpg.

При именовании файлов, например a0000001, удаляется вся релевантность файлам и не добавляется никакого значения.

Store (full) только пути к файлам в базе данных.

для части 2;

Я не уверен, какое лучшее решение здесь, но используя файловую систему, я думаю, вам придется настроить apache дляобслуживать все файлы в определенном каталоге с помощью PHP.В PHP вы можете проверить, можно ли опубликовать файл, а затем выплюнуть его.Если нет, вы можете подать фиктивный образ.Это, однако, не очень эффективно и будет намного тяжелее для Apache.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...