загрузка изображений php - PullRequest
4 голосов
/ 15 июля 2010

в какое место лучше загружать изображения? База данных или в веб-каталоге? А почему?

Ответы [ 5 ]

4 голосов
/ 15 июля 2010

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

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

2 голосов
/ 15 июля 2010

Я не вижу преимущества в хранении изображений в базе данных.В этом, конечно, нет никакой внутренней безопасности.Файлы предназначены для файловой системы, поэтому храните там свои изображения.

0 голосов
/ 15 июля 2010

Как видите, есть много причин, почему использовать / почему не использовать базу данных для хранения изображений.Лично я предпочитаю не использовать базу данных для хранения файлов (изображений, документов и т. Д.), За исключением случаев, когда мне приказано их хранить.

- Иногда вы устали и испортили запрос, что-то вроде "SELECT * FROM images ", это убьет сервер, если в базе данных слишком много изображений огромного размера (2 МБ и более).-Проблема безопасности: вы все еще можете сохранять файлы на диске и при этом быть в безопасности, как?Хорошо сохраняйте файлы вне веб-каталога, всякий раз, когда запрашивается файл, читайте файл и дайте его пользователю.-Если вы случайно используете MySQL: если ваша база данных стала большой (скажем, 2-3 ГБ), и вы используете общий хостинг, удачи в создании резервной копии или попытке восстановить эту базу изображений.

Это только моя точка зрения

0 голосов
/ 15 июля 2010

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

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

0 голосов
/ 15 июля 2010

Я не думаю, что вы можете «загрузить» изображение в базу данных. Вы можете сохранить строковое значение изображения в базе данных и затем передать его через «header (« Content-Type »)». Это экономит место на вашем веб-сервере, но, очевидно, занимает место в вашей базе данных.

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

...