Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Показать файл из базы в IFRAME
|
|||
|---|---|---|---|
|
#18+
Добрый день! Необходимо вытащить файл из базы данных и показывать его в IFRAME. Вроде сделал, но он показывает не в IFRAME, а открывает новое окно. Как заставить его показывать в IFRAME? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2006, 08:46 |
|
||
|
Показать файл из базы в IFRAME
|
|||
|---|---|---|---|
|
#18+
А как ты его вытаскиваешь? И как показываешь? Не через src?---------------------------------------- Knowledge is P...O...w...E...R! My site ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2006, 09:01 |
|
||
|
Показать файл из базы в IFRAME
|
|||
|---|---|---|---|
|
#18+
Если сразу указать 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 { } } ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2006, 09:07 |
|
||
|
Показать файл из базы в IFRAME
|
|||
|---|---|---|---|
|
#18+
Response.WriteFile рулит! А по поводу проблемы... кончено браузер хочет загрузить файл тем более пдф---------------------------------------- Knowledge is P...O...w...E...R! My site ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2006, 09:38 |
|
||
|
Показать файл из базы в IFRAME
|
|||
|---|---|---|---|
|
#18+
Вообще самым простым способом был бы redirect Но когда программно делаешь редирект на PDF сразу при загрузке страницы, то не позывает Если делаешь отдельно кнопку только Redirect - все хорошо. Что-то с этими PDF файлами какая-то странная заморочка... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2006, 09:53 |
|
||
|
Показать файл из базы в IFRAME
|
|||
|---|---|---|---|
|
#18+
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. а если без выделенной строчки? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2006, 10:15 |
|
||
|
Показать файл из базы в IFRAME
|
|||
|---|---|---|---|
|
#18+
Выделенная строка особо не влияет для обычных файлов. Но возникает ошибка (у меня все ошибки логируются, поэтому чтобы не захламлять лог закоментировал), а без нее как уже говорилось при просмотре текстовых файлах появляется "мусор". Вроде проблему можно решить, но криво-о-о. Выгружать файл из базы на диск. при загрузке странице вставлять скрипт, который будет менять ссылку. Может можно придумать что красивее? В базе могут быть документы word, pdf, tiff, txt ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2006, 11:54 |
|
||
|
Показать файл из базы в IFRAME
|
|||
|---|---|---|---|
|
#18+
goto 1 1: http://www.aspnetmania.com/Articles/Article/20.html---------------------------------------- Knowledge is P...O...w...E...R! My site ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2006, 12:13 |
|
||
|
Показать файл из базы в IFRAME
|
|||
|---|---|---|---|
|
#18+
Спасибо! С хандлерами можно решить проблему, чтобы не сохранять файл на локальной машине. Это здорово. Но проблема немножко ушла в другой ракус. У меня не получается открыть файлы word и pdf в том же самом окне, т.е. они открываются, но открываются в новом окне. Если же делать Redirect, то они вообще не показываются. А если ссылку забить руками, например: http://localhost/test/test.pdf то открывается так как надо. Но я ни как не могу сэмулировать открытие этого файла во фрейме динамически. Может быть я не правильно указываю AppendHeader ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2006, 13:20 |
|
||
|
Показать файл из базы в IFRAME
|
|||
|---|---|---|---|
|
#18+
Ни чего не понимаю... Нашел пример: http://support.microsoft.com/default.aspx?scid=http%3a%2f%2fwww.microsoft.com%2fIntlKB%2frussia%2farticles%2fru307%2f6%2f03.ASP Попробовал сделать. Показывает абсолютно пустую страницу... В чем заковыка? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2006, 14:51 |
|
||
|
Показать файл из базы в IFRAME
|
|||
|---|---|---|---|
|
#18+
Что-то похоже Микрософт с безопасностью переборщил. С серверной стороны (т.е. код) отрабатывает - отправляет страницу. ТОлько вот IE ее не хочет ни в какую показывать... В Firefox страница замечательно открывается и показывается именно так как мне надо. Может кто знает, может это какой-то глюк IE который можно побороть? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2006, 15:13 |
|
||
|
|

start [/forum/topic.php?fid=18&tid=1392029]: |
0ms |
get settings: |
4ms |
get forum list: |
12ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
52ms |
get topic data: |
6ms |
get forum data: |
1ms |
get page messages: |
24ms |
get tp. blocked users: |
1ms |
| others: | 206ms |
| total: | 310ms |

| 0 / 0 |
