Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Автоматическая загрузка файла на сервер php (https://javascript.ru/forum/misc/72701-avtomaticheskaya-zagruzka-fajjla-na-server-php.html)

Magic31 20.02.2018 10:16

Автоматическая загрузка файла на сервер php
 
Доброго времени.

Подскажите, пожалуйста, новичку ссылочку на материал о загрузке/отправке файлов на сервер с php с помощью JS.
Есть сервер, на который нужно загружать файл определенного вида с определенным форматом имени в txt-формате ежедневно. хочу автоматизировать эту процедуру на JS, дабы не делать постоянно работу вручную. раньше использовал такое решение как софт automate, но сейчас хочу сам разобраться с предметом.
Приношу извинения, если что-то написал неграмотно.
Буду рад любой оказанной помощи, поскольку уж совсем я новичок на форуме.
Заранее благодарю!

laimas 20.02.2018 10:38

И где находится этот .txt?

Magic31 20.02.2018 11:00

Файл находится на жестком диске компьютера, с которого его нужно загрузить на сервер.

laimas 20.02.2018 11:47

Если только для себя, то:

а) input file, ajax.

б) если автоматическая и по расписанию, то добавить задачу планировщику запускающему vbs (если так принципиально, можно и js не из под браузера), который ajax запросом будет отправлять файл. Если файл небольшой, то обычным текстового поля хватит.

Magic31 20.02.2018 12:05

Только для себя:)

Принципиально именно JS, поскольку на C# есть понимание определенное как это сделать.
Хочу разобраться как дело обстоит с JS, поэтому, будучи тут абсолютным новичком, и попросил помочь с направлением развития.
Спасибо за ответы!

Rise 20.02.2018 12:40

Magic31,
Так только наоборот :)

Rise 21.02.2018 16:59

Magic31,
Простой JScript (Microsoft JavaScript), где WScript объект компонента Windows Script Host (cscript.exe или wscript.exe):
// upload.js "Загрузка файла на сервер через WSH"

//WScript.timeout = 300;

var stream1 = WScript.createObject('ADODB.Stream');
stream1.open();
stream1.type = 1;
stream1.loadFromFile(WScript.arguments(1));

var stream2 = WScript.createObject('ADODB.Stream');
stream2.charset = 'Windows-1252';
stream2.open();
stream2.type = 2;
stream2.writeText('--xxxxxxxxxx\r\nContent-Disposition: form-data; name="file"; filename="test.txt"\r\nContent-Type: text/plain\r\n\r\n');
stream2.position = 0;
stream2.type = 1;
stream2.position = stream2.size;
stream2.write(stream1.read());
stream2.position = 0;
stream2.type = 2;
stream2.position = stream2.size;
stream2.writeText('\r\n--xxxxxxxxxx--');
stream2.position = 0;
stream2.type = 1;

var request = WScript.createObject('MSXML2.XMLHTTP');
request.open('POST', WScript.arguments(0), false);
request.setRequestHeader('Content-Type', 'multipart/form-data; boundary="xxxxxxxxxx"');
request.send(stream2.read());

//WScript.echo('~' + request.status + '~', '~' + request.statusText + '~', '~' + request.responseText + '~');

Планировщик заданий или Командная строка:
> wscript D:/path/upload.js http://www.example.com/upload.php D:/path/test.txt

Простая проверка на сервере:
<?php // upload.php

if (move_uploaded_file($_FILES['file']['tmp_name'], '/path/uploads/' . $_FILES['file']['name'])) {
    http_response_code(201);
}
var_dump($_FILES);


Часовой пояс GMT +3, время: 03:09.