Я пытаюсь создать приложение React, которое загружает файл, обрабатывает его на серверной части, а затем возвращает файл для загрузки на серверную часть. Я успешно получаю файл на сервер и пытаюсь выяснить, как отправить файл ответов обратно во внешний интерфейс для загрузки, но не уверен, как отправить этот файл или получить его на клиенте.
//FRONTEND
async uploadFiles() {
this.setState({uploadProgress: {},uploading: true});
const promises = [];
this.state.files.forEach(file => {
promises.push(this.sendRequest(file));
});
try {
await Promise.all(promises);
this.setState({successfullUploaded: true,uploading: false});
window.setTimeout(() => {
this.props.closeUpload('finished')
}, 2000)
} catch (e) {
// Not Production ready! Do some error handling here instead...
this.setState({successfullUploaded: true,uploading: false});
}
}
//BACKEND
module.exports = function upload(req, res) {
var form = new IncomingForm();
form.on("file", (field, file) => {
// Do something with the file
// e.g. save it to the database
// you can access it using file.path
console.log(file.path)
localPathOrig = 'files/midi.mid'
localPathResp = 'files/chords.mid'
fs.copyFile(file.path, localPathOrig, console.log)
fs.copyFile(localPathOrig, localPathResp, console.log)
//do things to file 'localPathResp'
});
form.on("end", () => {
res.writeHead(200, {
"Content-Type": "application/octet-stream",
"Content-Disposition": "attachment; filename=" + localPathResp
});
fs.createReadStream(localPathResp).pipe(res);
});
form.parse(req);
};