flutter
flutter에서 nodejs 서버로 이미지 업로드하기 - 서버부분
햎피
2022. 8. 24. 23:56
반응형
flutter에서 여러개의 이미지를 nodejs 서버로 업로드하기위해서는 multer를 사용해야한다!
multer를 먼저 설정해줘야한다.
destination을 이용해서 업로드할 이미지가 들어갈 폴더 이름을 바꿀 수 있다.
filename을 이용해서 업로드할 파일 이름을 바꿀 수 있다.
const upload = multer({
storage: multer.diskStorage({
destination: (req, file, cb) => {
let keynum = req.params.keynum;
let dir = 'uploads/' + keynum;
if (!fs.existsSync(dir)) { fs.mkdirSync(dir) };
cb(null, dir);
},
filename: (req, file, cb) => {
if (file.fieldname === "location_images") {
cb(null, '위치' + Date.now() + path.extname(file.originalname));
}
}
}),
limits: { fileSize: 5 * 1024 * 1024 }
})
이미지 파일들을 받는 부분이다.
flutter에서 form-data 형식으로 받아왔다.
const fileUpload = upload.fields([
{ name: 'location_images' },
]);
app.post('/api/uploadImg/:keynum', fileUpload, function (req, res) {
var dir = 'uploads/' + req.params.keynum;
if (!fs.existsSync(dir)) { fs.mkdirSync(dir) };
var upload_date = req.body.upload_date;
attractionModel.find({ key: req.params.keynum }, (err, att) => {
var id = att[0]._id;
attractionModel.findByIdAndUpdate(id, {
$set: {
upload_date: upload_date
}
}).exec();
});
res.status(200).json({ 'uploaded_images_count': count });
});
반응형