загрузить файл с запросом на публикацию в JS и NodeJS - PullRequest
0 голосов
/ 24 июня 2018

У меня есть следующий запрос, который я хотел бы написать как запрос post в nodejs:

POST / rest-api / hashDb / createAndUpload HTTP / 1.1

Хост: 192.168.101.54

Соединение: keep-alive

Длина содержимого: 428

Происхождение: https://192.168.101.54

Пользователь-агент: Mozilla / 5.0 (Windows NT 10.0; Win64; x64) AppleWebKit / 537,36 (KHTML, как Gecko) Chrome / 67.0.3396.87 Safari / 537.36

Content-Type: multipart / form-data; граница = ---- WebKitFormBoundaryQGLkZW0bVDsvWPEY

Примите: /

Рефери: https://192.168.101.54/ufed/index.html

Accept-Encoding: gzip, deflate, br

Accept-Language: en-US, en; q = 0,9, es; q = 0,8, he; q = 0,7

Cookie: JSESSIONID = s3a5sjc6wp1y1k9hv5advlf3a

это код, который я написал, но он не работает (файл не загружается):

var FormData = require('form-data');
var fs = require('fs');
var request = require("request")
// var XMLHttpRequest = require('xmlhttprequest').XMLHttpRequest;

let filePath = "C:\\Temp\\directory.txt" 
let myFile = fs.readFileSync(filePath,'utf8');
var formData = new FormData();
formData.append("myFile", myFile, "directory.txt");
var bounding = {"id":null,"type":"HashDbDto","name":"jorge1","fileType":"TXT","version":"1.2","redaction":false,"categories":[],"format":"MD5"};
formData.append("myFile", JSON.stringify(bounding));

request({
    headers: {'content-type': 'multipart/form-data; boundary=----WebKitFormBoundaryeiNygPyQcm8jomRB'},
    url: "https://192.168.101.54/rest-api/hashDb/createAndUpload",
    method: "POST",
    form: formData
});

что мне не хватает?

1 Ответ

0 голосов
/ 24 июня 2018

Используйте formData ключ вместо form ключ

request({
   headers: {'content-type': 'multipart/form-data; boundary=----WebKitFormBoundaryeiNygPyQcm8jomRB'},
   url: "https://192.168.101.54/rest-api/hashDb/createAndUpload",
   method: "POST",
   form: formData
})

См. https://www.npmjs.com/package/request. Для multipart / form-data мы используем библиотеку form-data от @felixge. В большинстве случаев вы можете передать данные формы загрузки с помощью параметра formData.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...