Skip to content

Commit

Permalink
[#44] Feat: 게시글 이미지 업로드 구현
Browse files Browse the repository at this point in the history
multer loader에 uploadPostImage추가,
image 라우터에 POST /image/upload 추가
Comment: image 라우터에 설명 주석 추가
  • Loading branch information
inyeoptti committed Oct 13, 2022
1 parent 0fb490c commit bbb0d81
Show file tree
Hide file tree
Showing 2 changed files with 29 additions and 3 deletions.
16 changes: 14 additions & 2 deletions backend/src/api/routes/image.js
Original file line number Diff line number Diff line change
@@ -1,12 +1,24 @@
import { Router } from "express";
import { uploadAvatar } from "../../loaders/multer";
import { uploadAvatar, uploadPostImage } from "../../loaders/multer";

const router = Router();

// POST /image/upload-avatar
// Content-Type: multipart/form-data
// Requires field(name=avatar) with image data
router.post("/upload-avatar", uploadAvatar, (req, res) => {
const { fieldname, originalname, encoding, mimetype, destination, filename, path, size } = req.file;

res.json({path: `/public/${filename}`});
res.json({ path: `/public/${filename}` });
});

// POST /image/upload
// Content-Type: multipart/form-data
// Requires field(name=image) with image data
router.post("/upload", uploadPostImage, (req, res) => {
const { fieldname, originalname, encoding, mimetype, destination, filename, path, size } = req.file;

res.json({ path: `/public/${filename}` });
});

export default router;
16 changes: 15 additions & 1 deletion backend/src/loaders/multer.js
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,20 @@ const multerAvatar = multer({
storage: storage,
limits: { fileSize: 5 * 1024 * 1024 }, // 파일 크기 5MB 제한
fileFilter: function (req, file, done) { // 이미지 형식 파일만 필터링
if (file.mimetype.lastIndexOf('image') > -1) {
if (file.mimetype.includes("image")) {
done(null, true); // 파일 허용
} else {
done(null, false); // 파일 거부
}
},

});

const multerPostImage = multer({
storage: storage,
limits: { fileSize: 5 * 1024 * 1024 }, // 파일 크기 5MB 제한
fileFilter: function (req, file, done) { // 이미지 형식 파일만 필터링
if (file.mimetype.includes("image")) {
done(null, true); // 파일 허용
} else {
done(null, false); // 파일 거부
Expand All @@ -42,3 +55,4 @@ const multerAvatar = multer({
});

export const uploadAvatar = multerAvatar.single('avatar'); // 'avatar'는 front에서 받아오는 field 명
export const uploadPostImage = multerPostImage.single('image'); // 'image'는 front에서 받아오는 field 명

0 comments on commit bbb0d81

Please sign in to comment.