#javascript #node.js #express #http #electron
#javascript #node.js #экспресс #http #electron
Вопрос:
Это то, что я пытаюсь сделать:
- Пользователь перетаскивает файл в Electron
- Electron использует скрипт python для его преобразования (child_process.exec)
- Преобразование создает файл в том же каталоге, что и исходный файл
- Поскольку я знаю путь (исходный файл, кроме другого расширения), файл загружается на сервер, который сохраняет его для будущего доступа.
Я застрял на шаге 4. Что бы я ни делал, я не могу получить преобразованный файл. Это то, что я пробовал:
let bodyFormData = new FormData();
bodyFormData.append('model', createReadStream(filePath));
axios({
method: 'post',
url: 'my/path',
data: bodyFormData,
headers: {
'Content-Type': `multipart/form-data; boundary=${bodyFormData._boundary}`
}
})
.then(function (response) {
//handle success
console.log(response);
})
.catch(function (response) {
//handle error
console.log(response);
});
И вот как выглядит запрос из express:
body: { model: '[object Object]' },
files: null,
Я не знаю, возможно ли это вообще. Если это не так, я был бы признателен за любые советы по другим способам достижения того, что я пытаюсь сделать. Надеюсь, моего объяснения было достаточно, заранее спасибо!
Ответ №1:
Мне удалось исправить это самостоятельно. Во-первых, да, можно читать файлы из файловой системы, если у вас есть соответствующие привилегии.
Все, что я сделал, это преобразовал поток файлов в blob перед отправкой, и это сработало. Я использовал этот потрясающий пакет npm под названием stream-to-blob, и он отлично справился с задачей.