хранение файлов в веб-приложении на asp.net - PullRequest
1 голос
/ 25 апреля 2011

У меня есть набор компонентов, которые я хочу разрешить пользователям загружать из моего веб-приложения.Теперь вопрос в том, куда мне поместить файлы в app_data или создать отдельную папку в веб-приложении asp.net, как показано здесь , или есть какое-то другое оптимальное решение для этого?

Что яПод компонентами подразумевается, что вы можете взглянуть на это !Итак, каков наилучший способ хранения компонентов?

Прямо сейчас я делаю следующее: я храню файлы во внешней папке вне приложения, а точнее в папке документов на моем диске c,и я сохраняю путь к компоненту в качестве элемента данных таблицы, когда когда-либо пользователь нажимает кнопку конкретной строки (в виде сетки), я получаю заголовок этой конкретной строки щелчка и запрашиваю таблицу базы данных дляпуть к файлу заголовка этого компонента, используя следующие строки кода:

String filePath = dr1[0].ToString(); //GETS THE FILEPATH FROM DATABASE
HttpContext.Current.Response.ContentType = "APPLICATION/OCTET-STREAM";
String disHeader = "Attachment; Filename=\"" + filePath + "\"";
HttpContext.Current.Response.AppendHeader("Content-Disposition", disHeader);
System.IO.FileInfo fileToDownload = new System.IO.FileInfo(filePath);
HttpContext.Current.Response.Flush();
HttpContext.Current.Response.WriteFile(fileToDownload.FullName);

Я делаю это правильно?Есть ли лучший / оптимальный способ сделать это?

Ответы [ 2 ]

1 голос
/ 25 апреля 2011

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

Вы можете быть уверены, что люди не смогут «просматривать» этот каталоготключив просмотр каталогов и не размещая там никаких документов по умолчанию (index.html, default.aspx, например)

1 голос
/ 25 апреля 2011

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

Я не могу придумать что-то более «оптимальное».

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