<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Серый форум &mdash; JS: Скачивание файла с интернета]]></title>
	<link rel="self" href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=10933&amp;type=atom" />
	<updated>2018-09-18T15:50:01Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.script-coding.com/viewtopic.php?id=10933</id>
		<entry>
			<title type="html"><![CDATA[Re: JS: Скачивание файла с интернета]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=128760#p128760" />
			<content type="html"><![CDATA[<p>Коллеги, так вроде давно уже решённые проблемы ?</p><p><strong>bitcoin</strong>, думаю Вам было бы проще использовать wsf файл (Windows Script File) и его тег <strong>resource</strong> для хранения тела файла.</p><div class="codebox"><pre><code>
// Константы для ADODB.Stream
var	adTypeBinary			= 1,
	adSaveCreateOverWrite	= 2;
// Содержимое файла в hex
var data = &#039;53616d706c652066696c6520776974682064617461&#039;;
// Создание объекта кодировщика / декодировщика
var encoder = (function(){
	var e = new ActiveXObject(&#039;MSXML2.DOMDocument.6.0&#039;).createElement(&quot;e&quot;);
	// Функция кодирования данных
	return {
		encode: function(data, dataType){
			e.dataType			= dataType;
			e.nodeTypedValue	= data;
			return e.text;
		},
		// Функция декодирования данных
		decode: function(data, dataType){
			e.dataType	= dataType;
			e.text		= data;
			return e.nodeTypedValue;
		}
	}
})();
// Декодирование данных (вторым параметром можно указать bin.hex - для данных в hex кодировке / bin.base64 - для данных в кодировке base64)
data = encoder.decode(data,&#039;bin.hex&#039;);
//Запись данных в файл
var stream = new ActiveXObject(&#039;ADODB.Stream&#039;);
// Режим записи двоичный
stream.Type = adTypeBinary;
stream.open();
stream.Write(data)
// Сохранение файла (второй параметр - adSaveCreateOverWrite разрешает перезапись поверх)
stream.SaveToFile(&#039;sample.txt&#039;, adSaveCreateOverWrite);
</code></pre></div>]]></content>
			<author>
				<name><![CDATA[Xameleon]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=8836</uri>
			</author>
			<updated>2018-09-18T15:50:01Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=128760#p128760</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: JS: Скачивание файла с интернета]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=128743#p128743" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>bitcoin пишет:</cite><blockquote><p>Выше этого (это просто тест) , идет код вида</p></blockquote></div><p>Вот так-то лучше.</p><p>Проблема не «лишь в записи файла». Проблема в том, что методу .Write() требуется аргумент типа ByteArray() — массив, каждый элемент которого является значением типа Byte: <a href="https://docs.microsoft.com/en-us/sql/ado/reference/ado-api/write-method?view=sql-server-2017">Write Method | Microsoft Docs</a>. А у Вас тип переменной str какой? Я вижу — string. Отсюда и ошибка, насколько я понимаю.</p><p>Как правильно создать и пользовать такой массив на JScript — не подскажу, не «мой» язык, ждите более опытных коллег.</p>]]></content>
			<author>
				<name><![CDATA[alexii]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=1844</uri>
			</author>
			<updated>2018-09-17T08:41:42Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=128743#p128743</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: JS: Скачивание файла с интернета]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=128742#p128742" />
			<content type="html"><![CDATA[<p><strong>stealzy</strong>, я взял с этой темы часть кода под записи бинарного файла. Спросил тут, чтобы не создавать новых тем на 1 вопрос. Если так нельзя, то прошу прощения.</p>]]></content>
			<author>
				<name><![CDATA[bitcoin]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=39528</uri>
			</author>
			<updated>2018-09-17T08:31:10Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=128742#p128742</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: JS: Скачивание файла с интернета]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=128739#p128739" />
			<content type="html"><![CDATA[<p>Код записи в файл примерно такой, и он не работает. WriteText работает, но файл нечитаемый, добавляются какие-то непонятные символы.<br /></p><div class="codebox"><pre><code>var ado = new ActiveXObject(&quot;ADODB.Stream&quot;);
ado.mode = 3;
ado.type = 1;
//ado.Charset = &quot;windows-1251&quot;;
//ado.LineSeparator = 10;
ado.open();
//ado.WriteText(str);
ado.Write(str); //не идет сюда никакая переменная, пишет ошибку!
ado.SaveToFile(&quot;test.bin&quot;, 2);</code></pre></div><p>Выше этого (это просто тест) , идет код вида<br /></p><div class="codebox"><pre><code>var hex = &quot;тут_хекс_данные_файла, много текста&quot;,
    bytes = [],
    str;

for(var i=0; i&lt; hex.length-1; i+=2)
{
    bytes.push(parseInt(hex.substr(i, 2), 16));
}
str = String.fromCharCode.apply(String, bytes);</code></pre></div><p>Хранится в хекс формате, потому что бинарные не засунешь в скрипт. можно и base64, не суть. Проблема лишь в записи файла.</p><p>P.S. аверы = антивирусники, на которых выше жаловались.Тут дело совсем не в них, ибо файл не исполняемый.</p>]]></content>
			<author>
				<name><![CDATA[bitcoin]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=39528</uri>
			</author>
			<updated>2018-09-17T07:57:02Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=128739#p128739</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: JS: Скачивание файла с интернета]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=128736#p128736" />
			<content type="html"><![CDATA[<p><strong>bitcoin</strong>, покажите Ваш полный код.</p><p>P.S. Что такое «аверы»?</p>]]></content>
			<author>
				<name><![CDATA[alexii]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=1844</uri>
			</author>
			<updated>2018-09-17T02:55:48Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=128736#p128736</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: JS: Скачивание файла с интернета]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=128734#p128734" />
			<content type="html"><![CDATA[<p>А почему может не работать метод Write ? У меня на любые попытки (без антивирусов, интернетов и прочего) записать данные в файл, пишет ошибку. &quot;Аргументы имеют неверный тип, выходят за пределы допустимого диапазона или вступают в конфликт друг с другом.&quot; Конкретно на строку с методом Write <br /></p><div class="codebox"><pre><code>var ado = new ActiveXObject(&quot;ADODB.Stream&quot;);
ado.mode = 3;
ado.type = 1;
ado.open();
ado.Write(&quot;строка&quot;); //сюда подставлял и переменную со скрипта, результат один и тот же.
ado.SaveToFile(path2, 2);  </code></pre></div><p>Перепробовал какие есть сорцы из инета, везде эта ошибка записи. Повторюсь, дело не в аверах, т.к. я просто хочу записать бинарный файл (не ехе).</p>]]></content>
			<author>
				<name><![CDATA[bitcoin]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=39528</uri>
			</author>
			<updated>2018-09-17T00:47:23Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=128734#p128734</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: JS: Скачивание файла с интернета]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=106546#p106546" />
			<content type="html"><![CDATA[<p>Скачивали, скачиваем и будем скачивать, как и раньше. <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" /></p>]]></content>
			<author>
				<name><![CDATA[Flasher]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=27593</uri>
			</author>
			<updated>2016-08-03T12:25:53Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=106546#p106546</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: JS: Скачивание файла с интернета]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=106535#p106535" />
			<content type="html"><![CDATA[<p>Кто-то еще скачивал в последнее время? Мне кажется, изза использования мной <a href="http://advanced.name/ru"><span style="color: black">прокси</span></a> доступ к сайту вообще как то не очень корректно осуществляется.</p>]]></content>
			<author>
				<name><![CDATA[mixens]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=34099</uri>
			</author>
			<updated>2016-08-03T10:49:35Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=106535#p106535</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: JS: Скачивание файла с интернета]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=97529#p97529" />
			<content type="html"><![CDATA[<p>А мне помог рецепт из <a href="http://stackoverflow.com/questions/4164400/windows-script-host-jscript-how-do-i-download-a-binary-file">http://stackoverflow.com/questions/4164 … inary-file</a>.<br />Пока проверял статус на 200 после выполнения send(), McAfee удалял скрипт как вирус. Но если повесить обработчик на onreadystatechange, то вполне прокатывало:<br /></p><div class="codebox"><pre><code>
function download(qurl, qfile)
{
    var r= 0, o= new ActiveXObject(&#039;MSXML2.XMLHTTP&#039;), ADO= {adTypeBinary: 1, adSaveCreateOverWrite: 2}

    o.onreadystatechange= function()
    {
        if (o.readyState !== 4) return; if ((r= o.Status) !== 200) return

        var a= new ActiveXObject(&#039;ADODB.Stream&#039;)

        a.Open()
        a.Type= ADO.adTypeBinary, a.Write(o.ResponseBody), a.Position= 0, a.SaveToFile(qfile, ADO.adSaveCreateOverWrite)
        a.Close()
    }
    o.open(&#039;GET&#039;, qurl, false)
    o.send()
    return r
}
</code></pre></div>]]></content>
			<author>
				<name><![CDATA[sen52]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=21937</uri>
			</author>
			<updated>2015-09-17T05:23:02Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=97529#p97529</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: JS: Скачивание файла с интернета]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=97449#p97449" />
			<content type="html"><![CDATA[<p><strong>adhocprog</strong>, в основном антивири проверяют скрипты на целиковую строчку <strong>progid</strong> &quot;опасных&quot; объектов. В частности <strong>ADODB.Stream</strong>. Поэтому иногда достаточно сделать нечто:<br /></p><div class="codebox"><pre><code>var ado = new ActiveXObject(&quot;ADODB.&quot; + &quot;Stream&quot;);</code></pre></div><p>и скрипт перестанет быть опасным.</p>]]></content>
			<author>
				<name><![CDATA[Xameleon]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=8836</uri>
			</author>
			<updated>2015-09-15T07:13:37Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=97449#p97449</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: JS: Скачивание файла с интернета]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=97356#p97356" />
			<content type="html"><![CDATA[<p>Спасибо! Попробую <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" /></p>]]></content>
			<author>
				<name><![CDATA[adhocprog]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=29238</uri>
			</author>
			<updated>2015-09-11T10:55:08Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=97356#p97356</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: JS: Скачивание файла с интернета]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=97337#p97337" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>adhocprog пишет:</cite><blockquote><p>Настройки ему сделать никакие не удастся.</p></blockquote></div><p>Если так, то не лишним было бы рассматривать ситуации, когда скрипт вообще не удаётся запустить. И что тогда?<br /></p><div class="quotebox"><cite>adhocprog пишет:</cite><blockquote><p>Что такое &quot;нормальный&quot;?</p></blockquote></div><p>Нормальный - это дружащий с головой и компьютером.<br /></p><div class="quotebox"><cite>adhocprog пишет:</cite><blockquote><p>Спасибо, попробую.</p></blockquote></div><p>Если конкретно, то вот код сохранения на vbs:<br /></p><div class="codebox"><pre><code>URL = &quot;http://ib.8plus.ru/8a/sounds/monofrosch-mit-hall.wav&quot;
Dir = &quot;C:\NewFolder\NewFolder\NewFolder&quot;  &#039; каталог сохранения

Set HTTP = CreateObject(&quot;MSXML2.XMLHTTP.6.0&quot;)
HTTP.open &quot;GET&quot;, URL, False : HTTP.Send
If HTTP.Status &lt;&gt; 200 Then _
HTTP.Abort : MsgBox &quot;Файл не доступен!&quot;, 48 : WScript.Quit

Set FSO = CreateObject(&quot;Scripting.FileSystemObject&quot;)
If Not FSO.FolderExists(Dir) Then _
   CreateObject(&quot;Shell.Application&quot;)._
   NameSpace(FSO.GetDriveName(Dir)).NewFolder(Mid(Dir, 4))

Path = FSO.BuildPath(Dir, FSO.GetFileName(URL))
With CreateObject(&quot;SAPI.SpFileStream&quot;)
  .Format.Type = 1 : .Open Path, 3, True
  .Write HTTP.ResponseBody : .Close
End With
CreateObject(&quot;WScript.Shell&quot;).Run &quot;explorer.exe /select,&quot; &amp; Path</code></pre></div>]]></content>
			<author>
				<name><![CDATA[Flasher]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=27593</uri>
			</author>
			<updated>2015-09-10T16:14:21Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=97337#p97337</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: JS: Скачивание файла с интернета]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=97336#p97336" />
			<content type="html"><![CDATA[<div class="quotebox"><blockquote><p>Нигде не определены критерии рядового пользователя</p></blockquote></div><div class="quotebox"><blockquote><p>Я себя считаю вполне нормальным</p></blockquote></div><p>Предлагаю тогда начать с определений &quot;рядового&quot; и &quot;нормальный&quot; <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" /><br />В моем понимании &quot;рядовой&quot; - это случайный пользователь (в нашем случай Windows).<br />Настройки ему сделать никакие не удастся. Какие есть, такие есть. Белый спектр.<br />Что такое &quot;нормальный&quot;?</p><div class="quotebox"><blockquote><p>Допустим.</p></blockquote></div><p>Спасибо, попробую.</p>]]></content>
			<author>
				<name><![CDATA[adhocprog]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=29238</uri>
			</author>
			<updated>2015-09-10T16:06:03Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=97336#p97336</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: JS: Скачивание файла с интернета]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=97306#p97306" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>adhocprog пишет:</cite><blockquote><p>Это значит, что я рядовой пользователь. У меня стоит типовой антивирус, установленный из коробки. Ничего специально не настраивал.</p></blockquote></div><p>Это говорит только о вашем выборе, больше ни о чём. Нигде не определены критерии рядового пользователя. <br /></p><div class="quotebox"><blockquote><p>Вообще антивирус не стоит?</p></blockquote></div><p>Нет, я берегу свои нервы и время.<br /></p><div class="quotebox"><cite>adhocprog пишет:</cite><blockquote><p>Если антивирус не стоит, то да <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" /></p></blockquote></div><p>Ошибаетесь. Я себя считаю вполне нормальным.<br /></p><div class="quotebox"><cite>adhocprog пишет:</cite><blockquote><p>Я понял. Это вы про разработку для собственных нужд пишите, для своей инфраструктуры.</p></blockquote></div><p>Разработку? В чём же её суть? <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" /><br /></p><div class="quotebox"><blockquote><p>Потому и вопрос возник, что же тогда использовать?</p></blockquote></div><p><a href="https://msdn.microsoft.com/en-us/library/ms721016(v=vs.85).aspx">Допустим</a>.</p>]]></content>
			<author>
				<name><![CDATA[Flasher]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=27593</uri>
			</author>
			<updated>2015-09-10T10:06:38Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=97306#p97306</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: JS: Скачивание файла с интернета]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=97299#p97299" />
			<content type="html"><![CDATA[<div class="quotebox"><blockquote><p>Что значит &quot;даже у меня&quot;?</p></blockquote></div><p>Это значит, что я рядовой пользователь. У меня стоит типовой антивирус, установленный из коробки. Ничего специально не настраивал.<br /></p><div class="quotebox"><blockquote><p>А вот у меня не стоит.</p></blockquote></div><p>Вообще антивирус не стоит?<br /></p><div class="quotebox"><blockquote><p>И что, я ненормальный пользователь в итоге?</p></blockquote></div><p>Если антивирус не стоит, то да <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" /> Если стоит какой-то другой, то нет.<br /></p><div class="quotebox"><blockquote><p>Вопрос, как я уже подразумевал, решается на стороне антивируса/файрвола</p></blockquote></div><p>Я понял. Это вы про разработку для собственных нужд пишите, для своей инфраструктуры.<br />Мой скрипт будет работать у случайных клиентов, я им ничего настроить не смогу.<br /></p><div class="quotebox"><blockquote><p>дело тут не в написании скриптов, а в ложном срабатывании из-за кривых сигнатур</p></blockquote></div><p>Дело тут в том, что использование ADODB.Stream Касперский считает опасным:<br />http://forum.kaspersky.com/lofiversion/index.php/t5633.html<br />Потому и вопрос возник, что же тогда использовать?...</p>]]></content>
			<author>
				<name><![CDATA[adhocprog]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=29238</uri>
			</author>
			<updated>2015-09-10T06:38:14Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=97299#p97299</id>
		</entry>
</feed>
