Я разрабатываю электронное приложение, которое должно вызывать api для замены (обновления) файла X на сервере файлом Y, который находится на моем компьютере. Пользователь загружает файл X с сервера, чтобы отредактировать его (на моем компьютере этот файл будет называться файлом Y). Когда пользователь заканчивает редактировать файл Y, я проверяю, отличаются ли оба файла X и Y, и вызываю api, чтобы заменить файл X файлом Y. Мне не нужно помещать файл Y в форму перед вызовом api, я хочу сделать это без формы. Только полезная нагрузка моего запроса отличается от того, что я ожидаю, в моих заголовках запросов нет проблем.
Я ожидаю, что будет что-то подобное
и я понял это

Вот что я делаю
const fs = require('fs');
let fileY = fs.readFileSync(path.resolve('gitignore.txt'));
let form = new FormData();
form.append("type", "jur_document");
form.append("file", fileY, 'gitignore.txt');
form.append("saveActionType", "SAVEMAJOR");
form.append("attributes", "MIMETYPE=text/plain");
let settings = {
"async": true,
"url": `${Constante.URL}/documents`,
"method": "POST",
"type": "POST",
"headers": {
// "Content-Type": "text/plain",
"Authorization": sessionStorage.getItem('authorization')
},
"processData": false,
"contentType": false,
"mimeType": "multipart/form-data",
"data": form
};
$.ajax(settings)
.done((response) => {
console.info(response);
}).fail(err => {
console.info(err);
});
}
Я делаю это, но получаю тот же результат
Пожалуйста, перечитайте документацию jQuery.ajax(). У вас есть конфликтующие настройки в вашем объекте настроек, которые вызовут всевозможные проблемы. api.jquery.com/jquery.ajax
Вот моя новая настройка, но она по-прежнему не принимает файл <pre> let settings = {"url": ${Constante.URL}/documents, "method": "POST", "type": "POST", "headers": {"Content -Type »:« multipart / form-data »,« Authorization »: sessionStorage.getItem ('authorization')},« processData »: false,« contentType »: false,« mimeType »:« text / plain »,« data » ": форма }; </pre>



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


я наконец получил решение Я читаю свой файл и создаю большой двоичный объект, который использую для воссоздания своего файла
const fs = require('fs');
let buffer = fs.readFileSync(`${app.getAppPath()}/test.txt`);
let fileY = new File([new Uint8Array(buffer)], 'test.txt', {
type: 'text/plain'
});
form.append("file", fileY);
и вот настройки ajax
let settings = {
"url": `${Constante.URL}/documents`,
"type": "POST",
"headers": {
"Authorization": sessionStorage.getItem('authorization')
},
"processData": false,
"contentType": false,
"data": form
};
Вы должны установить HTTP-заголовок для
"Content-Type": "multipart/form-data"