반응형
[Node.js] 파일 업로드 하기 (multer 모듈 사용 )
참조 : https://junspapa-itdev.tistory.com/27
<form name="questionForm" method="post" enctype="multipart/form-data" action="/test/save">
<input type="hidden" name="TEST_SN" value="1">
<ul id="questionFormList">
<li>
<input type="hidden" name="Q_SN" value="2">
<input type="file" name="IMG_FILE">
</li>
<li>
...
</li>
...
</ul>
<input type="submit" value="전송">
</form>
var multer = require('multer'); //multer 모듈 import
var upload = multer({dest: 'public/images/yesno/'}); //업로드 경로 설정
//미리 폴더를 만들어놔야 하며, 경로 맨 앞에 '/'는 붙이지 않습니다.
var multer = require('multer');
//multer 의 diskStorage를 정의
var storage = multer.diskStorage({
//경로 설정
destination : function(req, file, cb){
cb(null, 'publics/images/');
},
//실제 저장되는 파일명 설정
filename : function(req, file, cb){
//파일명 설정을 돕기 위해 요청정보(req)와 파일(file)에 대한 정보를 전달함
var testSn = req.body.TEST_SN;
var qSn = req.body.Q_SN;
//Multer는 어떠한 파일 확장자도 추가하지 않습니다.
//사용자 함수는 파일 확장자를 온전히 포함한 파일명을 반환해야 합니다.
var mimeType;
switch (file.mimetype) {
case "image/jpeg":
mimeType = "jpg";
break;
case "image/png":
mimeType = "png";
break;
case "image/gif":
mimeType = "gif";
break;
case "image/bmp":
mimeType = "bmp";
break;
default:
mimeType = "jpg";
break;
}
cb(null, testSn + "_" + qSn + "." + mimeType);
}
});
var upload = multer({storage: storage});
파일명 + 현재일시 추가
const multer = require("multer");
const path = require("path");
let storage = multer.diskStorage({
destination: function(req, file ,callback){
callback(null, "upload/")
},
filename: function(req, file, callback){
let extension = path.extname(file.originalname);
let basename = path.basename(file.originalname, extension);
callback(null, basename + "-" + Date.now() + extension);
}
});
// 1. 미들웨어 등록
let upload = multer({
storage: storage
});
반응형
'프로그래밍 > Script' 카테고리의 다른 글
[Node.js] SyntaxError: await is only valid in async function (0) | 2021.08.04 |
---|---|
Bootstrap modal 사이즈 및 위치 조절 (0) | 2021.08.03 |
[javascript] Deno - A secure runtime for JavaScript and TypeScript. (0) | 2021.07.08 |
[jQuery] image slideshow (0) | 2021.07.06 |
[javascript] (0) | 2021.07.05 |