오늘은 npm 모듈중 하나인 multer를 사용해봤습니다.
간단하게 경로만 입력해 파일을 저장할수도있고 경로뿐만이 아니라
저장될 이름같은것들을 diskStorage 객체를 이용해서 설정해줄수있었습니다.
오늘 간단하게 만들어본 예제는 이런 코드였습니다.
app.js
const express=require('express')
const app=express()
const multer=require('multer')
const path=require('path')
let diskStorage=multer.diskStorage({
destination:function(req,file,cb){
cb(null,'uploads/')
},
filename:function(req,file,cb){
let filename=file.originalname
cb(null,filename)
}
})
let upload=multer({
storage:diskStorage
})
app.use('/public',express.static('uploads'))
app.post('/upload',upload.single('img'),function(req,res){
console.log(req.file)
res.redirect(`/public/${req.file.originalname}`)
})
app.get('/',function(req,res){
res.sendFile(path.resolve('views/index.html'))
})
app.listen(process.env.PORT || 3000)
index.html
<form action="/upload" method="POST" enctype="multipart/form-data">
<input type="file" name="img">
<input type="submit">
</form>
폼에서 파일을 전송하면 그 파일을 저장하고 저장한 파일로 접근시키는 코드입니다.
파일업로드는 쉽게할수 있단걸 알았으니 보안이 취약해질수있는 파일은 못올리고,
사진종류만 올리게 할수있는방법을 찾아본다음
전에 만들었던 로그인 게시판 소스에 적용시켜 게시물에 사진을 올릴수있게 적용해봐야겠습니다.
'오늘 배운것들' 카테고리의 다른 글
Bloom Filter란 뭘까,,,,,, (1) | 2025.07.03 |
---|---|
일을 시작하며 느낀 CS의 중요성 (0) | 2025.06.19 |
셀레니움 크롬 프로필 쓰는 방법/ 유튜브 네이버 로그인 없이 자동화 하는법 (2) | 2022.08.02 |
ERD 기호 설명 (0) | 2020.04.12 |