Что нового

Загрузка файла из HTTPS зоны по непрямой ссылке

Pavel

Новичок
Сообщения
125
Репутация
3
Доброго времени суток!
Столкнулся с задачей загрузки файла. Увы, доступ к ресурсу дать не могу.
Проблема: файл находится в зоне HTTPS. После авторизации осуществляется переход по ссылке на php-файл, который генерирует выходной xls-файл.
Вопрос: как сохранить отдаваемый php-скриптом xls-файл?

Т.к. в вопросе не сведущ - буду рад правильным вопросам :smile:
 

Nik_rus

Python The Snake.
Сообщения
214
Репутация
62
Код:
#include <IE.au3>

или надо пакетно?
 
Автор
P

Pavel

Новичок
Сообщения
125
Репутация
3
Nik_rus, собственно, по корявому так и сделал - подключаемся в фоне, авторизуемся, переходим на php-файл, который выдаёт окно сохранения файла (!). WinWait'ом ждем окна и сохраняем.

Но это способ через Жадницу, имхо.
Проблемы этого метода:
1. иногда (не знаю с чем это связано) - Internet Explorer ОТКРЫВАЕТ xls-файл (кракозябрами) вместо предложения загрузки/сохранения.
2. ControlClick по кнопке InternetExplorer'a 'сохранить ' (Button2) не проходит.
 

Garrett

Модератор
Локальный модератор
Сообщения
3,999
Репутация
967
Pavel [?]
Вопрос: как сохранить отдаваемый php-скриптом xls-файл?
Отдаваемый куда, в браузер в виде ссылки, или файл предлагается сохранить?
 
Автор
P

Pavel

Новичок
Сообщения
125
Репутация
3
Garret, в виде файла, которого предлагается сохранить.
 

Garrett

Модератор
Локальный модератор
Сообщения
3,999
Репутация
967
Pavel
Попробуйте так:
Код:
;~ для IE
;~ программный код до появления диалогового окна "Загрузка файла"
While 1
	Select
		Case WinExists("Загрузка файла", "Со&хранить") And WinActive("Загрузка файла", "Со&хранить")
			ControlClick("Загрузка файла", "Со&хранить", "[CLASS:Button; INSTANCE:2]")
		Case WinExists("Сохранить как","Со&хранить") And WinActive("Сохранить как","Со&хранить")
			ControlClick("Сохранить как", "Со&хранить", "[CLASS:Button; INSTANCE:2]")
		Case WinExists("Сохранить как", "&Да") And WinActive("Сохранить как", "&Да")
			;~ если файл уже существует, то он переписывается
			ControlClick("Сохранить как", "&Да", "[CLASS:Button; INSTANCE:1]")
		Case WinExists("Загрузка завершена.") And WinActive("Загрузка завершена.")
			ControlClick("Загрузка завершена.", "", "[CLASS:Button; INSTANCE:4]")
			Exit
	EndSelect
WEnd
;~ ~~~
 
Верх