Что нового

Как скачать файл под ссылкой на javascript?

andre213

Новичок
Сообщения
10
Репутация
0
Дорогого времени суток!
У меня такая же проблем с ссылкой под java script для скачивания excel.
Ссылка имеет код:
Код:
<a style="height: 70px; text-align: center; float: right;" onclick="exportExcel();" href="javascript:void(0)">
					<img src="User/Images/ext/excel_large.png">

					<span>Експорт в XLS</span>
				</a>
Функция скачать Excel
Код:
<script type="text/javascript">
				function exportExcel() {
					$.ajax({
						url: "/Tenders.aspx/GetExcel",
						type: "POST",
						dataType: "json",
						contentType: "application/json",
						data: JSON.stringify({
							par: $("#exPar").val()
						}),
						success: function(data) {
							if (data.d.url) {
								window.location.href = data.d.url;
							} else {
								alert('Не удалось сформировать документ');
							}
						}
					});
				}
			</script>
Я сделал запрос на скачивание, а вот сохранить файл куда мне надо не могу.
Один из выходов которых я вижу, это скачать файл в папку загрузка(через клик по диалоговому окну "сохранить") и скопировать прямую сылку на файл с "download history", вот только доступ к истории скачанных фалов получить не могу. Где они хранятся кто его знает и функций для доступа к ним на autoit не нашёл.

Код:
прямая сылка https://smarttender.biz/ws/getfile.ashx?file=171d850b-0ddf-4132-8192-b92c98d61777.xlsx&name=Торги_20170924180517.xlsx

Что делать какие есть у кого идеи?

Посоветуйте как качать такие файлы


Код:
#include <IE.au3>

Local $JS = ""
$JS &="$.ajax({"& @CRLF
$JS &='url: "/Tenders.aspx/GetExcel",'& @CRLF
$JS &='type: "POST",'& @CRLF
$JS &='dataType: "json",'& @CRLF
$JS &='contentType: "application/json",'& @CRLF
$JS &="data: JSON.stringify({"& @CRLF
$JS &='par: $("#exPar").val()'& @CRLF
$JS &="}),"& @CRLF
$JS &="success: function(data) {"& @CRLF
$JS &="if (data.d.url) {"& @CRLF
$JS &="window.location.href = data.d.url;"& @CRLF
$JS &="} else {"& @CRLF
$JS &="alert('Не удалось сформировать документ');"& @CRLF
$JS &="}"& @CRLF
$JS &="}"& @CRLF
$JS &="});"& @CRLF




$oIE = _IECreate ('https://smarttender.biz/tenders?mode=gov&allcat=0&nh=1')

$oIE.document.parentWindow.execScript($JS)
 
Автор
A

andre213

Новичок
Сообщения
10
Репутация
0
Вот разобрался.
В описании функции GEtexcel есть строка
Код:
window.location.href = data.d.url;
которая говорит что надо перейти браузеру по ссылке, ну а ссылка в виде переменной JS (data.d.url).
Значение переменной записываю как содержание страницы через
Код:
document.open();
document.write(data.d.url);
document.close();

Вот как я реализовал всё:
Код:
#include <IE.au3>
#include <InetConstants.au3>
#include <WinAPIFiles.au3>


$hFile = FileOpen(@ScriptDir & '\js.js', 0)
Local $JS = FileRead($hFile)
;alert(window.location.href);

$oIE = _IECreate ('https://smarttender.biz/tenders?mode=gov&allcat=0&nh=1')


$oIE.document.parentWindow.execScript($JS)
;_IEHeadInsertEventScript ($oIE, "window", "onbeforeunload",$JS)
sleep(3000)
_IELoadWait($oIE)
Local $sHTML = _IEDocReadHTML($oIE)
Local $gString = StringReplace(StringReplace(StringReplace(StringReplace(StringReplace(StringReplace($sHTML, "<html>", ""), "</html>", ""), "<head>", ""), "</head>", ""), "</body>", ""), "<body>", "")
;ConsoleWrite($gString)
Local $hDownload = InetGet($gString, "1.xlsx")


Содержимаю js.js
Код:
$.ajax({
url: "/Tenders.aspx/GetExcel",
type: "POST",
dataType: "json",
contentType: "application/json",
data: JSON.stringify({
par: $("#exPar").val()
}),
success: function(data) {
if (data.d.url) {
var Linc = "gogle.com";
document.open();
document.write(data.d.url);
document.close();
} else {
alert('Не удалось сформировать документ');
}
}
});
 
Верх