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

Необходимо вытащить файл из базы данных и показывать его в IFRAME.
Вроде сделал, но он показывает не в IFRAME, а открывает новое окно.

Как заставить его показывать в IFRAME?
...
Рейтинг: 0 / 0
Показать файл из базы в IFRAME
    #33831644
C...R...a...S...H
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А как ты его вытаскиваешь?
И как показываешь? Не через src?----------------------------------------
Knowledge is P...O...w...E...R!
My site
...
Рейтинг: 0 / 0
Показать файл из базы в IFRAME
    #33831652
as111
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если сразу указать src - все ОК. Но дело в том, что у меня файл лежит в базе, т.е. его надо динамически вытаскивать и показывать юзеру.
Поэтому в SRC указал путь к моей форме ASPX, а в форме в при загрузке станицы написал примерно вот такой код:

 private void OpenFile()
    {
        long lngFileSize;
        byte[] bytBuffer;
        int iReading;
        FileStream fStream = null;
        Stream outStream = null;
        try
        {
            string fullFileName = @"c:\TEMP\test.pdf";

            outStream = Page.Response.OutputStream;
            Page.Response.Clear();
            Page.Response.ContentType = "application/octet-stream";
            //Page.Response.ContentType = "application/pdf";
            Page.Response.AppendHeader("Connection", "keep-alive");
            Page.Response.AppendHeader("Content-Disposition", " attachment; filename = test.pdf ");
            fStream = new FileStream(fullFileName, FileMode.OpenOrCreate, FileAccess.Read);
            lngFileSize = fStream.Length;
            bytBuffer = new byte[(int)lngFileSize];
            while ((iReading = fStream.Read(bytBuffer, 0, (int)lngFileSize)) > 0)
            {
                outStream.Write(bytBuffer, 0, iReading);
            }
            fStream.Close();
            outStream.Close();
            // TODO: После этой команды почему-то все время появляется ошибка:
            // <"Поток находился в процессе прерывания">
            // А если убрать ее, то в конец текстовых файлов добавляется "мусор"
            // Что с этим делать пока не ясно
            //
            Page.Response.End();
        }
        catch //( System.Exception e )
        {
            // ALERT: Закоментированно, т.к. ошибка возникает всегда. Надо разбираться
        }
        finally
        {
        }
}
...
Рейтинг: 0 / 0
Показать файл из базы в IFRAME
    #33831710
C...R...a...S...H
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Response.WriteFile рулит!

А по поводу проблемы... кончено браузер хочет загрузить файл тем более пдф----------------------------------------
Knowledge is P...O...w...E...R!
My site
...
Рейтинг: 0 / 0
Показать файл из базы в IFRAME
    #33831746
as111
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Рулит!


Но PDF файлы напрочь отказывается показывать! Как только не пробовал, пока результат 0.
...
Рейтинг: 0 / 0
Показать файл из базы в IFRAME
    #33831761
as111
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вообще самым простым способом был бы redirect

Но когда программно делаешь редирект на PDF сразу при загрузке страницы, то не позывает


Если делаешь отдельно кнопку только Redirect - все хорошо.

Что-то с этими PDF файлами какая-то странная заморочка...
...
Рейтинг: 0 / 0
Показать файл из базы в IFRAME
    #33831869
Артем1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
as111Если сразу указать src - все ОК. Но дело в том, что у меня файл лежит в базе, т.е. его надо динамически вытаскивать и показывать юзеру.
Поэтому в SRC указал путь к моей форме ASPX, а в форме в при загрузке станицы написал примерно вот такой код:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
 private void OpenFile()
    {
        long lngFileSize;
        byte[] bytBuffer;
        int iReading;
        FileStream fStream = null;
        Stream outStream = null;
        try
        {
            string fullFileName = @"c:\TEMP\test.pdf";

            outStream = Page.Response.OutputStream;
            Page.Response.Clear();
            Page.Response.ContentType = "application/octet-stream";
            //Page.Response.ContentType = "application/pdf";
            Page.Response.AppendHeader("Connection", "keep-alive");
            Page.Response.AppendHeader("Content-Disposition", " attachment; filename = test.pdf ");
            fStream = new FileStream(fullFileName, FileMode.OpenOrCreate, FileAccess.Read);
            lngFileSize = fStream.Length;
            bytBuffer = new byte[(int)lngFileSize];
            while ((iReading = fStream.Read(bytBuffer,  0 , (int)lngFileSize)) >  0 )
            {
                outStream.Write(bytBuffer,  0 , iReading);
            }
            fStream.Close();
            outStream.Close();
            // TODO: После этой команды почему-то все время появляется ошибка:
            // <"Поток находился в процессе прерывания">
            // А если убрать ее, то в конец текстовых файлов добавляется "мусор"
            // Что с этим делать пока не ясно
            // 
            Page.Response.End();
        }
        catch //( System.Exception e )
        {
            // ALERT: Закоментированно, т.к. ошибка возникает всегда. Надо разбираться
        }
        finally
        {
        }
}


а если без выделенной строчки?
...
Рейтинг: 0 / 0
Показать файл из базы в IFRAME
    #33832286
as111
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Выделенная строка особо не влияет для обычных файлов. Но возникает ошибка (у меня все ошибки логируются, поэтому чтобы не захламлять лог закоментировал), а без нее как уже говорилось при просмотре текстовых файлах появляется "мусор".


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


Может можно придумать что красивее?
В базе могут быть документы word, pdf, tiff, txt
...
Рейтинг: 0 / 0
Показать файл из базы в IFRAME
    #33832370
C...R...a...S...H
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
goto 1




1:
http://www.aspnetmania.com/Articles/Article/20.html----------------------------------------
Knowledge is P...O...w...E...R!
My site
...
Рейтинг: 0 / 0
Показать файл из базы в IFRAME
    #33832648
as111
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо!

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

Но проблема немножко ушла в другой ракус. У меня не получается открыть файлы word и pdf в том же самом окне, т.е. они открываются, но открываются в новом окне.
Если же делать Redirect, то они вообще не показываются.

А если ссылку забить руками, например:
http://localhost/test/test.pdf
то открывается так как надо. Но я ни как не могу сэмулировать открытие этого файла во фрейме динамически.

Может быть я не правильно указываю AppendHeader ?
...
Рейтинг: 0 / 0
Показать файл из базы в IFRAME
    #33832975
as111
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ни чего не понимаю...
Нашел пример:
http://support.microsoft.com/default.aspx?scid=http%3a%2f%2fwww.microsoft.com%2fIntlKB%2frussia%2farticles%2fru307%2f6%2f03.ASP

Попробовал сделать.
Показывает абсолютно пустую страницу...
В чем заковыка?
...
Рейтинг: 0 / 0
Показать файл из базы в IFRAME
    #33833087
as111
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что-то похоже Микрософт с безопасностью переборщил.
С серверной стороны (т.е. код) отрабатывает - отправляет страницу. ТОлько вот IE ее не хочет ни в какую показывать...

В Firefox страница замечательно открывается и показывается именно так как мне надо.

Может кто знает, может это какой-то глюк IE который можно побороть?
...
Рейтинг: 0 / 0
Показать файл из базы в IFRAME
    #33833155
C...R...a...S...H
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maybe Сервис->Свойства обозревателя->Безопастность ->Другой->Автоматические запросы на загрузку----------------------------------------
Knowledge is P...O...w...E...R!
My site
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Показать файл из базы в IFRAME
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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