Добрый день.
Делаю приложение на Electron и нужно отправить локальный файл на сервер.
Из входных данных имеется массив с именами и путями к файлам на компьютере. Т.е. нужно отправить файлы без использования File Input в Html. Задачу нужно решить чисто на NodeJS. Желательно с применением fetch
Пример моего кода в упрощенном виде:
let data = new FormData();
data.append('newName', file.name);
data.append('file', fs.readFileSync(file.path), file.name);
fetch(url, {
method: 'POST',
body: data
})
.then(console.log.bind(console));
Объект file:
let file = {
name: 'test.jpg',
path: 'D:\test.jpg'
}
Потраченные часы на гугление подсказок ни к чему не привели. Большинство вариантов сводится к использованию . И использования объекта File, полученного таким образом.
На сервере есть рабочий скрипт на PHP, который должен принять файл через $_FILES; Пока этого добиться не удалось.
Если сильно упростить задачу, то есть js файл, который при "node test.js" должен отправить локальный файл на сервер с PHP
p.s. в заголовках передается в этом случае следующее:
------WebKitFormBoundaryDKpQTS4WNgpByUYC
Content-Disposition: form-data; name="newName"
test.jpg
------WebKitFormBoundaryDKpQTS4WNgpByUYC
Content-Disposition: form-data; name="file"
------WebKitFormBoundaryDKpQTS4WNgpByUYC--
И соотв-но на сервере:
var_dump($_FILES);
//
array()