Как сохранить загруженные картинки в базу данных? - PullRequest
2 голосов
/ 27 сентября 2010

на моем новом веб-сайте c # .net 3.5 ASP пользователь может загрузить изображение.

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

Ответы [ 3 ]

2 голосов
/ 27 сентября 2010

Pro files:

  1. Существует простой вызов для передачи файла в поток ответов.Просто установите ContentType соответствующим образом, вызовите его, и все готово.
  2. Он более производительный (хотя это часто преувеличивается, хорошее использование больших двоичных объектов или потоков файлов SQLServer имеет тенденцию быть довольно производительным, но все же теряется по сравнению с файламиопераций).

Pro DB:

  1. Согласованность проще, не может быть ситуации, когда структура файла и база данных не совпадают.
  2. ФайлРешения на основе сложны, если вы переходите на решение веб-фермы с более чем одним веб-сервером (при определенном успехе вам придется это делать).
  3. Миграция данных из-за изменений, как правило, проще.Вам все равно придется перемещать данные БД куда-нибудь, поэтому, как только вы решили, что вы решили их и для изображений.
  4. Код манипуляции легче писать.
  5. Отчетностьна всю коллекцию картинок проще.
0 голосов
/ 27 сентября 2010

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

. Начиная с SQL Server 2008, вы также можете сохранять BLOB-файлы = на диске, но при этом SQL-сервер обращается к ним с помощью атрибут хранилища файлового потока .Вы можете проверить основы различий в производительности здесь .

0 голосов
/ 27 сентября 2010

Должен ли я сохранить его на своем сервере в папке и сохранить путь в базе данных

Вы могли бы сделать что-то подобное или ...

вы можете воспользоваться функцией FILESTREAM в SQL Server 2008.

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

Введение в SQL Server FileStream

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