MVC и файлы, загруженные пользователем, где хранить файлы? - PullRequest
3 голосов
/ 18 декабря 2009

У меня проблемы с выбором места хранения файлов, загруженных пользователем, в моем приложении asp.net mvc.

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

Как бы вы, ребята, подошли к этой проблеме?

Наличие их в базе данных, и могут ли быть проблемы с производительностью там? или оставить так, как я всегда делал, и могут возникнуть проблемы с "синхронизацией" файловой системы и БД?

У меня должна быть какая-то реляционная информация в базе данных, поэтому я не могу хранить ее только на диске

Я использую sql 2005 atm и где-то читал, что в sql 2008 теперь есть какой-то столбец данных, который просто хранит «указатель» (например, text-datatype) на файл на диске, таков путь

В некотором смысле, база данных по какой-то причине называется базой данных, поэтому не знаете, зачем изобретать колесо снова? :)

Буду признателен за любые указатели или идеи, я думаю, мне просто интересно узнать о проблемах, с которыми я могу столкнуться, если пойду с подходом к базе данных

/ M

Ответы [ 2 ]

2 голосов
/ 18 декабря 2009

Вы можете использовать специальную папку App_Data для размещения загруженных файлов и сохранения пути в базе данных. Если вы используете SQL Server 2008, вы можете взглянуть на тип FILESTREAM .

1 голос
/ 20 декабря 2009

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

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