Я создаю API, используя express JS. Теперь у меня есть маршрутизатор, который будет использоваться для загрузки изображения с помощью multer .
Вот мой маршрутизатор:
const multer = require('multer');
module.exports = (app) => {
const DIR = './public/';
const storage = multer.diskStorage({
destination: (req, file, cb) => {
cb(null, DIR);
},
filename: (req, file, cb) => {
cb(null , file.originalname);
}
});
const upload = multer({ storage: storage });
// I have also tried this but not working
// const upload = multer({ dest: 'uploads/' });
app.post('/upload', upload.single('image'), (req, res, next) => {
res.status(201).json({
message: "File uploaded successfully"
});
});
}
Теперь из моего приложения reactjs Я звоню этому маршрутизатору, используя ax ios, например:
const headers = {
"Content-Type": "multipart/form-data"
}
const body = new FormData();
body.append('image', this.state.selectedCategoryImage);
axios.post('http://localhost:3000/upload', body, { headers }).then((res) => {
console.log(res);
}).catch((err) => {
console.log(err);
});
В приведенном выше коде this.state.selectedCategoryImage
является выбранным изображением из тега html <input>
.
Теперь, когда я вызываю этот API, я получаю ответ «Файл успешно загружен», но я не могу увидеть загруженное изображение в каталоге publi c. Мое изображение не загружается.
Пожалуйста, кто-нибудь может мне помочь, в чем проблема?