Должен ли я сохранять загруженные (img файлы) в App_Data? - PullRequest
5 голосов
/ 26 декабря 2011

Я использую asp.net mvc и у меня есть раздел, куда пользователь может загружать изображения. Мне интересно, где их хранить.

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

Так что не знаете, какие преимущества дает использование app_data. Я нахожусь на виртуальном хостинге, поэтому не знаю, имеет ли это значение.

Редактировать

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

Ответы [ 3 ]

4 голосов
/ 27 декабря 2011

Учебное пособие является простым примером - и если вы читаете комментарии, исходный код просто сохраняется в каталоге uploads, app_data не видно.

Он был изменен на app_data, потому что это специальная папка, которая не позволяет выполнять код.

И вы правильно поняли - app_data действительно существует для хранения файловых баз данных. В этом смысл папки. Таким образом, сохранение изображений в него не кажется правильным.

Если вы уверены, что только изображения будут загружены (и вы управляете этим), я бы предложил каталог /uploads - зарезервированное место для изображений, которое также не позволит выполнять код (то, что вы сможете контролировать с помощью IIS).

1 голос
/ 27 декабря 2011

Я бы сказал, что это зависит от того, что вы будете делать с этими изображениями позже. Если вы используете эти изображения в теге img, вы можете сохранить их где-нибудь в структуре содержимого / папки.

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

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

Но: вы можете хранить двоичные файлы в БД (хотя это, вероятно, не лучшая вещь), поэтому ссылка в БД на файл в том же каталоге имеет смысл снова.

Хотя, я думаю, это скорее вопрос мнения, чем технического вопроса.

0 голосов
/ 27 декабря 2011

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

Плюс я предпочитаю не управлять путями и расположением файлов, что является еще одним голосом за базу данных. Эти значения пути всегда попадают в файл web.config, и его развертывание и управление становятся более сложными.

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