Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   AutoIt (http://forum.oszone.net/forumdisplay.php?f=103)
-   -   [решено] Как забрать файл по http? (http://forum.oszone.net/showthread.php?t=297471)

dedmazai1870 25-03-2015 20:41 2487572

Как забрать файл по http?
 
Доброго времени.
В справке команды не нашёл. Можно ли с помощью AutoIt скачивать из интернета файлы?
Задача такая: надо забирать небольшой текстовый файл, адрес примерно такой _http://xxx.yyy.zzz/название.расширение
Браузером забирается, но может есть более элегантное решение отдельной командой?

madmasles 25-03-2015 20:44 2487575

Цитата:

Цитата dedmazai1870
В справке команды не нашёл. »

Код:

InetRead()
InetGet()

Кликайте по функциям.
Имя файла получить можно примерно так.
Код:

$sUrl = 'http://xxx.yyy.zzz/название.расширение'
$sFile = StringTrimLeft($sUrl, StringInStr($sUrl, '/', 2, -1))
ConsoleWrite($sFile & @LF)


dedmazai1870 25-03-2015 21:17 2487596

madmasles, InetGet не совсем то, а с InetRead получилось. Дело в том, что файл - это на самом деле ссылка на php-скрипт, и при InetRead я получаю как раз нужный результат его выполнения в окне.
Взял пример из InetRead, подставил свой адрес, всё сработало.
Не сочтите за наглость и чтобы не плодить темы, подскажите: как мне полученный текст выводить не в окно, а сохранять в файл?

Coutty 25-03-2015 21:26 2487599

Ну вот InetGet как раз и сохраняет файл на диск.

madmasles 25-03-2015 21:29 2487601

Цитата:

Цитата dedmazai1870
как мне полученный текст выводить не в окно, а сохранять в файл? »

Код:

FileOpen()
FileWrite()
FileClose()


dedmazai1870 25-03-2015 21:29 2487602

Coutty, при InetGet я получаю в файле такой результат.
Код:

<html><body><h1>It works!</h1></body></html>
А при InetRead в окне выводится результат работы скрипта.

dedmazai1870 25-03-2015 21:47 2487611

Хотел заменить
Код:

MsgBox(4096, "", "Прочитанных байт: " & $nBytesRead & @CRLF & @CRLF & BinaryToString($sData))
на что-то подобное
Код:

FileWrite($hFile, BinaryToString($sData))
пока не получается. Буду пробовать дальше. Если есть идеи, как MsgBox заменить на FileWrite - буду признателен.
Спасибо за помощь.

madmasles 25-03-2015 22:06 2487626

dedmazai1870,
Код:

Local $sUrl = 'http://Ссылка', $bRead, $sFile = @ScriptDir & '\test.txt', $hFile

$bRead = InetRead($sUrl, 17)
If @error Then Exit 1
$hFile = FileOpen($sFile, 16 + 2)
If $hFile = -1 Then Exit 2
FileWrite($hFile, $bRead)
FileClose($hFile)


dedmazai1870 26-03-2015 00:34 2487692

madmasles, это чудо! Огромное спасибо!


Время: 10:52.

Время: 10:52.
© OSzone.net 2001-