Я пытаюсь загрузить файлы на сервер, но получаю сообщение об ошибке 500.
В веб-интерфейсе (React) я использую axios:
class InputFile extends Component {
constructor(props) {
super(props);
this.state = { selectedFile: null };
this.handleUploadFile = this.handleUploadFile.bind(this);
this.handleUpload = this.handleUpload.bind(this);
}
handleUploadFile(event) {
this.setState({
selectedFile: event.target.files[0]
});
}
handleUpload() {
const data = new FormData();
data.append('file', this.state.selectedFile, this.state.selectedFile.name);
axios
.post('http://127.0.0.1:8000/upload', data)
.then(res => {
console.log(res.statusText);
});
}
render() {
return (
<div>
<input name='file' type='file' formEncType='multipart/form-data'
onChange={this.handleUploadFile} multiple
/>
</div>
)
}
}
В серверной части (Node) Я пытаюсь сохранить файлыв папке:
app.route('/upload')
.post((req, res, next) => {
const uploadFile = req.files.file;
const fileName = req.files.file.name;
uploadFile.mv(
`uploadFiles/${fileName}`,
(err) => {
if (err) {
return res.status(500).send(err);
}
res.json({
file: `uploadFiles/${req.files.file.name}`
});
},
);
});
Фактически я получаю сообщение об ошибке в консоли:
Uncaught (в обещании) Ошибка: запрос не выполнен с кодом состояния 500
И req.files на бэкэнде равно не определено .Как я могу это исправить?Должна быть возможность загружать один или несколько файлов одновременно
В интерфейсе, который я использую: "axios": "^ 0.18.0",
В интерфейсе, который я использую: "express-fileupload ":" ^ 1.0.0 "