Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Хранение файлов в БД / 12 сообщений из 12, страница 1 из 1
12.01.2012, 13:15:30
    #37610911
Centraloff
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Хранение файлов в БД
Добрый день!

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

Все нормально работает только вот ссылка на файл получается вида site.ru/FileStream.ashx?FileId=1 , как бы сделать так чтобы ссылка была site.ru/docs/file.pdf
...
Рейтинг: 0 / 0
12.01.2012, 13:27:21
    #37610942
libru
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Хранение файлов в БД
никомуненужный функционал
...
Рейтинг: 0 / 0
12.01.2012, 14:54:41
    #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
12.01.2012, 16:48:40
    #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
12.01.2012, 17:17:30
    #37611537
Andrey1306
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Хранение файлов в БД
bazile,

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

Спасибо, попробую. Давно хотел разобраться с URLRewrite да времени не было, придется сейчас заняться.
...
Рейтинг: 0 / 0
13.01.2012, 14:44:55
    #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
15.01.2012, 19:29:41
    #37615392
SanSYS
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Хранение файлов в БД
...
Рейтинг: 0 / 0
15.01.2012, 19:30:43
    #37615393
SanSYS
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Хранение файлов в БД
Centraloff,

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

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

+1К

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

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


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