File download

arhip

Новичок
File download

У меня проблема с download'ом файлов с web-сервера (apache with php module and OCI, Oracle . Файлы лежат в базе.

Проблема стабильно вознимает при попытке скачать (открыть, т.е. в диалоге IE выбрать Open, а не Save) Visio (.vsd) файлы. Причем, даже если рассмотреть самый простой вариант (чтение файла с диска, выдача заголовков и выдача контента файла) - проблема всеравно есть.

А теперь о проблеме: если перед выдачей данных идет вызов функции OCIExecute, то IE 6 показывает свою дурную заглушку can't find server or dns error.... В 5.5 все работает. OCIExecute тоже отрабатывает нормально.

Может кто-то знает в чем прикол? Я пока в инете не нашел ответа на свой вопрос.

Нашедшему решение - пиво :)
 

tony2001

TeaM PHPClub
>если перед выдачей данных идет вызов функции OCIExecute, то IE 6
> показывает свою дурную заглушку can't find server or dns error....
логи апач смотри, он у тебя там не падает случаем?

>Проблема стабильно вознимает при попытке скачать
понятие "вознимает" мне неизвестно, к сожалению.
 

arhip

Новичок
Вознимает == возникает - сорри за опечатку.

В логах все ок - апач отправляет данные.
Это какой-то прикол с IE, но всеже не понятно, как использование OCI в PHP может влиять на это.
 

young

Новичок
А теперь о проблеме: если перед выдачей данных идет вызов функции OCIExecute, то IE 6 показывает свою дурную заглушку can't find server or dns error.... В 5.5 все работает. OCIExecute тоже отрабатывает нормально.
Версия броузера к ошибке OCIExecute не имеет никакого отношения.
 

arhip

Новичок
Автор оригинала: young
Версия броузера к ошибке OCIExecute не имеет никакого отношения.
А что за ошибка ты можешь сказать?
execute выполняется без ошибок, и fetch-нуть курсор затем можно спокойно. Но не понятно как это влияет на передачу данных браузеру.

И еще раз акцентирую внимание: ошибка возникает при попытке ОТКРЫТИЯ файла.
 

tony2001

TeaM PHPClub
убери хидеры и посмотри какие данные при этом высылаются браузеру.
есть мнение, что там пусто.
 

arhip

Новичок
Автор оригинала: tony2001
убери хидеры и посмотри какие данные при этом высылаются браузеру.
есть мнение, что там пусто.
Повторюсь в третий раз. Если в диалоге IE выбрать Сохранить, то файл сохраняется на диск нормально (и открывается с диска нормально).
А если выбрать открыть, то IE поднимает как OLE компоненту Visio и что-то у него ломается видимо внутри, так как он показывает свою стандартную страницу с ошибкой. Но эта ошибка происходит ТОЛЬКО если в моем коде есть OCIExecute (logon, parse - это все проходит)...

Прблема не так тривиальна. И я не написал бы, если бы не протр@хался с этим уже 2 недели :(
 

tony2001

TeaM PHPClub
>Если в диалоге IE выбрать Сохранить, то файл сохраняется на диск нормально (и открывается с диска нормально).
проблемы ИЕ меня мало беспокоят.
пробуй на нормальных браузерах.
 

arhip

Новичок
Автор оригинала: tony2001
>Если в диалоге IE выбрать Сохранить, то файл сохраняется на диск нормально (и открывается с диска нормально).
проблемы ИЕ меня мало беспокоят.
пробуй на нормальных браузерах.
Ну неужели нельзя просто ответить - не сталкивался или просто промолчать? Я же email лично тебе пишу - а спрашиваю у людей в форуме. И не надо тупых базаров о нормальности браузеров, тем более, что как я сказал, у нас IE6 корпоративный стандарт.

И еще одно - я прошу помощи в решении ДАННОЙ проблемы.
Так что прошу по существу :)
 

tony2001

TeaM PHPClub
>Ну неужели нельзя просто ответить - не сталкивался или просто промолчать
это типа "спасибо за то, что потратил на меня свое время" ?
не за что.

>И не надо тупых базаров о нормальности браузеров, тем более, что как я
> сказал, у нас IE6 корпоративный стандарт.
мне все равно какой и где стандарт.
я тебе пути выяснения проблемы предлагаю, а ты мне про стандарты и "по существу".
неужели трудно самому догадаться, что посмотреть ЧТО ИМЕННО шлет скрипт можно не только в ИЕ? или для этого нужно думать еще неделю?
 

arhip

Новичок
Ладно - все забыли, кроме сути. Если кому интересно, то я взял sniffit и записал лог соединения. Наш проект использует в качестве БД Oracle. Авторизация с помощью HTTP-заголовков (Basic). Так вот что происходит.

1. IE посялает запрос и получает ответ. Авторизация серверу посялается.
2. IE (или его компонент) пятается несколько раз "нащупать" на сервере Frontpage extension но безуспешно.
3. Опять посялается запрос на файл, но уже без авторизации.

И так как последний раз авторизации не бело, то при выборке данных из базы получаем ошибку (пользователь просто не видит таблиц). А сам IE не отображает ошибку (кстати, почему?) а отображает свою стандартную заглушку а-ля DNS error.

А как его заставить посылать только один, но правильный запрос - наврядли кто-то скажет.
 
Сверху