|
|
|
|
|
для: poli
(26.06.2010 в 15:14)
| | >вот! меня интересует этот момент:
>
>>Выдавать эти поля следует в отклике сохраняемого потока. То есть уже после редиректа (через который через Location или еще как)
>>
>
>можно здесь поподробнее? я не знаю как сделать редирект после приведенного кода, т.е.
>после header('Content-Type: application/vnd.ms-excel');
вот видите?
Я говорю, Content-type должен быть после редиректа.
Вы спрашиваете как редирект сделать после content-type
Ну и о каком понимании протокола тут можно говорить, если Вы даже после и перед путать умудряетесь?
>я так понимаю, что решение моей проблемы связано с более глубоким пониманием спецификации протокола HTTP, я его пока очень плохо знаю, потому и ищу помощь на форуме
протокол описан в RFC-2616, ссылки на перевод я приводил здесь неоднократно.
Поиском вытягивается моментально. | |
|
|
|
|
|
|
|
для: Valick
(26.06.2010 в 15:25)
| | Для этого надо перхватывать события, ибо такое событие у окна может возникать часто, и не обязательно по закрытию диалога, то есть должна быть четкая последовательность, начиная от потери фокуса окном. Узнать, что потеря фокуса наступила по клику по кнопке не сложно, а вот дальше начинаются трудности - пользователь может просто щелкнуть по окну вновь, либо отвлечься на дугое окно, и вся последовательность развалится. Вам не известно уже - открыт ли, закрыт ли диалог. | |
|
|
|
|
|
|
|
для: poli
(26.06.2010 в 14:23)
| | кстати, а после закрытия окна сохранения фокус возвращается окну родителю?
может повесить перенаправление на onfocus или как его там? слабо разбираюсь в JS | |
|
|
|
|
|
|
|
для: Trianon
(26.06.2010 в 14:33)
| | а окно браузера тут не при чем, разве что Вы сами пишите
... провоцируют браузер предложить пользователю сохранить тело отклика в файл на его диске
у меня при этом открывается окошко "сохранить как".
т.е. получается по одному нажатию кнопочки должно быть как бы два ответа от сервера браузеру,
1-й, который провоцируют браузер предложить пользователю сохранить тело отклика в файл на его диске
и 2-й, который делает редирект
если я правильно понимаю проблему, возможно ли это? | |
|
|
|
|
|
|
|
для: Trianon
(26.06.2010 в 14:33)
| | вот! меня интересует этот момент:
>Выдавать эти поля следует в отклике сохраняемого потока. То есть уже после редиректа (через который через Location или еще как)
>
можно здесь поподробнее? я не знаю как сделать редирект после приведенного кода, т.е.
после
header('Content-Type: application/vnd.ms-excel');
header('Content-Disposition: attachment; filename='1.xls');
include("forma.php");
просто написать header('Location: index.php');
понятное дело, работать не будет.
я так понимаю, что решение моей проблемы связано с более глубоким пониманием спецификации протокола HTTP, я его пока очень плохо знаю, потому и ищу помощь на форуме | |
|
|
|
|
|
|
|
для: poli
(26.06.2010 в 13:58)
| |
Content-Disposition: attachment; filename="файл"
|
вкупе с
Content-Type: application/octet-stream; name="файл"
|
действительно провоцируют браузер предложить пользователю сохранить тело отклика в файл на его диске
(вместо того чтоб открывать новое окно с содержимым или даже менять содержимое в старом).
Выдавать эти поля следует в отклике сохраняемого потока. То есть уже после редиректа (через который через Location или еще как)
Только при чем тут окно браузера.
По сути в рассматриваемом потоке и окна-то уже/еще никакого нет. | |
|
|
|
|
|
|
|
для: poli
(26.06.2010 в 14:23)
| | броузер отображает диалоговое окно "Загрузка файла", нажмет пользователь "сохранить" или "отмена" - это его дело.
моя проблема - как сделать, чтобы после закрытия окна диалога загрузки файла, произошло обновление данных в окне броузера - это ваши слова?
Так вот, повторяю еще раз - нельзя этого сделать потому, что ВАМ НИКОГДА НЕ БУДЕТ ИЗВЕСТЕН МОМЕНТ ЗАКРЫТИЯ ЭТОГО ДИАЛОГА!
Более крупным шрифтом написать?
>а событийная модель windows меня в данном сл. не интересует, я не по ней строю логику
А зря, что вы понятия не имеете об этом (как впрочем и о событиях DOM-объктов на странице). Именно эта модель позволяет узнавать такие моменты, а вам в документе доступны только события от объектов документа! Только от них! А вышеописанный диалог, повторяю еще раз - НЕ ЯВЛЯЕТСЯ ИМ!!! (Событий доступных от окна не так и много, и нужного вам среди них нет)
Делайте вывод сами - можно или нельзя. | |
|
|
|
|
|
|
|
для: sim5
(26.06.2010 в 14:10)
| | простите, милейший, но если Вы не знаете, как решить сформ. пробл., это не означает еще, что решить ее в принципе не возможно... а если Вам лень вникунуть в суть проблемы, то, простите не нужно советов, особенно типа "что-то есть, но я не знаю, возможно, что-то можно"
а событийная модель windows меня в данном сл. не интересует, я не по ней строю логику и повторюсь, не жду никакого ответа от диалого браузера | |
|
|
|
|
|
|
|
для: poli
(26.06.2010 в 14:03)
| | Вот что милейший, почитайте, что означет ProcessMessages в WinAPI, чтобы не пороть ерунды.
Этот диалог НЕ является объектом документа, а значит вы не получаете от него никаких событий, и момент закрытия этого диалога вам никогда не будет известен! Что это означет?
Есть flash технология, не знаю, возможно она и позволит что-то сделать. Но вы, отдавая пользователю страницу, вторгаетесь на чужую территорию, и не думайте, что на ней вам все доступно. | |
|
|
|
|
|
|
|
для: sim5
(26.06.2010 в 13:56)
| | а мне и не надо знать закрыт этот диалог или нет, это проблема пользователя хочет пусть сохраняет данные, нет пусть жмет отмену, мне главное, чтобы такое окно выскакивало (и заметьте оно выскакивает) и после в браузере менялась информация (ну пусть не после, а параллельно, не важно), от действий пользователя в окне сохранения это никак не зависит. | |
|
|
|
|