powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Хранение файлов в БД
12 сообщений из 12, страница 1 из 1
Хранение файлов в БД
    #37610911
Centraloff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день!

Сделал хранение файлов на сервере по примеру описанному здесь

Все нормально работает только вот ссылка на файл получается вида site.ru/FileStream.ashx?FileId=1 , как бы сделать так чтобы ссылка была site.ru/docs/file.pdf
...
Рейтинг: 0 / 0
Хранение файлов в БД
    #37610942
libru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
никомуненужный функционал
...
Рейтинг: 0 / 0
Хранение файлов в БД
    #37611191
Andrey1306
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CentraloffДобрый день!

Сделал хранение файлов на сервере по примеру описанному здесь

Все нормально работает только вот ссылка на файл получается вида site.ru/FileStream.ashx?FileId=1 , как бы сделать так чтобы ссылка была site.ru/docs/file.pdf

не уверен, но может попробовать в FileStream.ashх дописать
context.Response.AppendHeader("content-disposition", string.Format("attachment; filename={0}", "site.ru/docs/file.pdf"));

вообщем как то filename сформировать
...
Рейтинг: 0 / 0
Хранение файлов в БД
    #37611456
bazile
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Centraloffссылка на файл получается вида site.ru/FileStream.ashx?FileId=1 , как бы сделать так чтобы ссылка была site.ru/docs/file.pdf
Можно настроить URL Rewrite чтобы все запросы вида site.ru/docs/***** перезаписывались на FileStream.ashx. Обработчик затем будет брать имя файла из запрошенного пути и смотреть есть ли такой файл в базе. Если нет, то возвращаем ответ с кодом 404. Если есть, от отдаем его содержимое с соответствующим http заголовками. Для запроса site.ru/docs/file.pdf они могут быть такими:

Content-Type: application/pdf
Content-Disposition: attachment; filename="file.pdf"

Обрати внимание, что пример Andrey1306 не корректен в том смысле что filename должен содержать только имя файла.
...
Рейтинг: 0 / 0
Хранение файлов в БД
    #37611537
Andrey1306
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
bazile,

Да Вы правы.
Я делал context.Response.AppendHeader("content-disposition", string.Format("attachment; filename={0}", " для того что бы картинка с нормальным именем сохранялась, для ссылок такой задачи не было.
...
Рейтинг: 0 / 0
Хранение файлов в БД
    #37611788
Centraloff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
bazile,

Спасибо, попробую. Давно хотел разобраться с URLRewrite да времени не было, придется сейчас заняться.
...
Рейтинг: 0 / 0
Хранение файлов в БД
    #37613135
Centraloff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добавил в Global.asax следующий код

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
void Application_BeginRequest(object sender, EventArgs e)
    {

        string fullOrigionalpath = Request.Url.ToString();

        if (fullOrigionalpath.Contains("/Docs/"))
        {
            int i = fullOrigionalpath.LastIndexOf("/Docs/");
            string file = fullOrigionalpath.Substring(i+6);
            
            string conn = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;
            SqlConnection sqlConnection1 = new SqlConnection();
            sqlConnection1.ConnectionString = conn;

            SqlCommand CmdInsertFile = new SqlCommand("select id from docs where filename=@filename", sqlConnection1);
            CmdInsertFile.Parameters.AddWithValue("@filename", file);
            sqlConnection1.Open();
            string id = CmdInsertFile.ExecuteScalar().ToString();
            sqlConnection1.Close();
            Context.RewritePath("~/FileStream.ashx?FileId="+id);
        }
    }



Локально работает, на сервере пишет что файл не найден, получается что на сервере этот код не выполняется, в чем может быть причина?
...
Рейтинг: 0 / 0
Хранение файлов в БД
    #37615392
Фотография SanSYS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Хранение файлов в БД
    #37615393
Фотография SanSYS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Centraloff,

И кстати, рекомендую хотябы как-то обособить работу с БД
...
Рейтинг: 0 / 0
Хранение файлов в БД
    #37615546
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
libruникомуненужный функционал
+1К
...
Рейтинг: 0 / 0
Хранение файлов в БД
    #37616029
Фотография SanSYS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУlibruникомуненужный функционал
+1К

отнюдь, это иногда нужно, чтобы перебором кто-то не выкачал, к примеру
...
Рейтинг: 0 / 0
Хранение файлов в БД
    #37616074
Фотография SanSYS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SanSYSМСУпропущено...

+1К

отнюдь, это иногда нужно, чтобы перебором кто-то не выкачал, к примеру

хотя... ид ведь может быть и GUID, тогда точно пофигу и никому нафиг не сдался реврайт )
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Хранение файлов в БД
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]