안드로이드앱프로그래밍 과목을 들으면서 안드로이드에서 nodejs서버로 이미지 파일을 전송해야되는 경우에 사용하기위해 Multer 모듈을 채택했다.
안드로이드에서 retrofit을 통한 서버로 이미지 전송과정은 생략하고 nodejs서버에서 처리하는 과정만 설명하도록 하겠다.
const multer = require('multer')
const crypto = require('crypto')
const storage = multer.diskStorage({
destination: 'images/', // 이미지 저장 경로
filename: (req, file, cb) => {
return crypto.pseudoRandomBytes(16, (err, raw) => {
if(err) {
return cb(err)
}
return cb(null, file.originalname)
})
}
})
const upload = multer({ storage: storage })
router.post('/[api url]', upload.single('file'), (req, res) => {
try {
let file = req.file
let originalName = ''
let fileName = ''
let mimeType = ''
let size = 0
if (file) {
originalName = file.originalname
fileName = file.filename
mimeType = file.mimeType
size = file.size
...
}
...
res.send(...)
} catch(err) {
res.send(...)
}
}