Я пытаюсь реализовать функцию загрузки файлов, используя multipart, чтобы ускорить загрузку при большом размере файла.
Я не могу понять, почему это не работает.
Я предоставляю средупеременные через консоль на данный момент.
Когда я нажимаю кнопку отправки, ничего не происходит.Оба моих сервера работают нормально (я в них совершенно уверен)
Проблема:
1>, когда я
axios.post(`http://localhost:4000`, data)
выдает ошибку.Как мне опубликовать свой файл (данные) в бэкэнде?
Пожалуйста, укажите на ошибки или вещи, которые нужно сделать.
Заранее спасибо!
Ниже следуетmy FileUpload.js
import React, { Component } from 'react';
import axios from 'axios';
class FileUpload extends Component {
constructor (props) {
super(props);
this.submitFile = this.submitFile.bind(this);
this.fileInput = React.createRef();
}
submitFile = (event) => {
event.preventDefault();
var data = {
file: this.fileInput.current.files[0],
name: this.fileInput.current.files[0].name
};
axios.post(`http://localhost:4000`, data)
.then(response => {
console.log(response);
})
.catch(error => {
console.log(error);
});
}
render() {
return (
<form onSubmit={this.submitFile}>
<input type='file' ref={this.fileInput} />
<button type='submit'>Send</button>
</form>
);
}
}
export default FileUpload;
Мой бэкэнд-узел upload.js выглядит следующим образом:
const multer = require('multer');
const multerS3 = require('multer-s3');
const AWS = require('aws-sdk');
var cred = require('../aws/config')
const AWS_SECRET_ACCESS = cred.access();
const AWS_ACCESS_KEY = cred.awskey();
// configure the keys for accessing AWS
AWS.config.update({
accessKeyId: process.env.AWS_SECRET_ACCESS,
secretAccessKey: process.env.AWS_ACCESS_KEY,
region: ''
});
// create S3 instance
const s3 = new AWS.S3();
const upload = multer({
storage: multerS3({
s3:s3,
bucket: '',
metadata: function (req, file, cb) {
cb(null, {fileName: 'uploadit'});
},
key: function (req, file, cb) {
cb(null, Date.now().toString())
}
})
})
module.exports = upload;