Автор Тема: Как скачать файл под ссылкой на javascript?  (Прочитано 712 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн andre213 [?]

  • Новичок
  • *
  • Сообщений: 10
  • Репутация: 0
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.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"><br>
<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
Что делать какие есть у кого идеи?

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


Код: AutoIt [Выделить]
 #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)
 


« Последнее редактирование: Октябрь 09, 2017, 20:01:12 от andre213 »

Русское сообщество AutoIt

Как скачать файл под ссылкой на javascript?
« Отправлен: Сентябрь 26, 2017, 20:38:50 »

Оффлайн Garrett [?]

  • Глобальный модератор
  • *
  • Сообщений: 3999
  • Репутация: 960
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Re: Как скачать файл под ссылкой на javascript?
« Ответ #1, Отправлен: Сентябрь 27, 2017, 22:07:48 »
andre213  [?]
Цитировать
Посоветуйте как качать такие файлы
:search:

Скорблю и помню.




Помечен как лучший ответ пользователем andre213 Отправлен Октябрь 09, 2017, 19:54:07

Оффлайн andre213 [?]

  • Новичок
  • *
  • Сообщений: 10

  • Автор темы
  • Репутация: 0
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Re: Как скачать файл под ссылкой на javascript?
« Ответ #2, Отправлен: Октябрь 09, 2017, 19:53:56 »
Вот разобрался.
В описании функции GEtexcel есть строка window.location.href = data.d.url; которая говорит что надо перейти браузеру по ссылке, ну а ссылка в виде переменной JS (data.d.url).
Значение переменной записываю как содержание страницы  через document.open();
document.write(data.d.url);
document.close();

Вот как я реализовал всё:
Код: AutoIt [Выделить]
#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('Не удалось сформировать документ');
}
}
});

Русское сообщество AutoIt

Re: Как скачать файл под ссылкой на javascript?
« Ответ #2 Отправлен: Октябрь 09, 2017, 19:53:56 »

 

Похожие темы

  Тема / Автор Ответов Последний ответ
6 Ответов
6165 Просмотров
Последний ответ Январь 25, 2011, 03:25:05
от Pavel
1 Ответов
2606 Просмотров
Последний ответ Февраль 27, 2011, 11:38:46
от rusreg79
7 Ответов
5431 Просмотров
Последний ответ Апрель 04, 2013, 22:03:59
от madmasles
8 Ответов
3174 Просмотров
Последний ответ Июнь 26, 2012, 19:51:00
от vladu
2 Ответов
2071 Просмотров
Последний ответ Август 15, 2012, 13:27:08
от CreatoR
8 Ответов
8144 Просмотров
Последний ответ Июнь 15, 2014, 02:06:11
от Garrett
4 Ответов
2036 Просмотров
Последний ответ Сентябрь 20, 2013, 14:27:20
от ildarv
0 Ответов
1015 Просмотров
Последний ответ Сентябрь 20, 2013, 05:08:00
от madmasles
6 Ответов
2377 Просмотров
Последний ответ Декабрь 02, 2013, 12:39:18
от mef-t
7 Ответов
5753 Просмотров
Последний ответ Декабрь 25, 2013, 09:00:33
от Се-рё-жа