npm install --save multer
CREATE TABLE book_image (
image_number INT PRIMARY KEY NOT NULL AUTO_INCREMENT,
image_name VARCHAR(200) NOT NULL,
image_path VARCHAR(200) NOT NULL,
created_at TIMESTAMP NOT NULL DEFAULT NOW(),
updated_at TIMESTAMP NOT NULL DEFAULT NOW(),
admin_number INT NOT NULL,
FOREIGN KEY (admin_number) REFERENCES admin (admin_number)
);
const multer = require("multer");
...
const fileStorage = multer.diskStorage({
destination: (req, file, cb) => {
cb(null, "static/images");
},
filename: (req, file, cb) => {
cb(null, file.filename + "-" + file.originalname);
},
});
...
const fileFilter = (req, file, cb) => {
if (
file.mimetype === "image/png" ||
file.mimetype === "image/jpg" ||
file.mimetype === "image/jpeg"
) {
cb(null, true);
} else {
cb(null, false);
}
};
...
app.use(
multer({ storage: fileStorage, fileFilter: fileFilter }).single("image")
);
const imageController = require('../controllers/admin/image');
...
routes.get('/imageRegist', imageController.getImageRegist);
routes.post('/imageRegistAction', imageController.imageRegistAction);
const Image = require("../../models/admin/image");
exports.getImageRegist = (req, res, next) => {
res.render("admin/regist/image", {
pageTitle: "E-Book Image Regist",
member: req.session.user,
admin: req.session.admin,
});
};
exports.imageRegistAction = (req, res, next) => {
let image = req.file;
let adminNumber = req.session.admin.admin_number;
Image.imageRegistAction(image, adminNumber, (err) => {
if (err) {
console.log("에러를 확인해주세요. : " + err);
} else {
res.render("admin/adminIndex", {
pageTitle: "E-Book Image Regist",
member: req.session.user,
admin: req.session.admin,
});
}
});
};
module.exports = class Image {
constructor(image) {
this.image = image;
}
static imageRegistAction(image, adminNumber, cb) {
let imageName = image.originalname;
let imagePath = image.path;
let sql =
"INSERT INTO book_image (image_name, image_path, admin_number) VALUES (?, ?, ?)";
let param = [imageName, imagePath, adminNumber];
if (image) {
connection.query(sql, param, (err, row, field) => {
if (err) {
console.log("이미지 쿼리 오류 : " + err);
} else {
console.log("이미지 등록 성공!");
cb();
}
});
} else {
console.log("등록된 이미지가 없습니다.");
}
}
};