我正在开发一个电子应用程序,它必须调用api来替换(更新)服务器中的文件X,这是我计算机中的文件Y. 用户从服务器下载文件X以进行编辑,(此文件将在我的计算机中命名为文件Y)。 当用户完成编辑文件Y时,我检查文件X和Y是否是不同的并且我调用api以便用文件Y替换文件X.在调用api之前我不需要将文件Y放在表单中,我希望没有形式。 只有我的请求有效负载与我期望的有效负载不同,我的请求标头中没有问题
这是我做的事情
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.log(response);
}).fail(err => {
console.log(err);
});
}
答案 0 :(得分:0)
我终于得到了解决方案 我读了我的文件并创建了一个用于重新创建文件的blob
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
};