반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- checkbox
- WinForm
- Git
- html 코드
- 하위노드
- 윈폼
- SQL Server
- C#
- footer
- MSSQL
- body
- 초기설정
- json
- 로깅
- 깜빡임
- Compare
- sql 서버
- treeview
- jQuery
- 깃허브
- nodejs
- github
- header
- 비교
- ChatGPT
- input
- ejs
- SSMS
- CheckAllChildNodes
- 한번에 체크
Archives
- Today
- Total
타닥타닥 민타쿠
Nodejs 파일 선택하면 저장하기(multer 미들웨어) 본문
반응형
사용자가 input 태그를 통해 이미지 파일 선택을 하면, 해당 이미지 파일을 저장하는 업로드 기능을 구현하는 방법이다.
파일 선택하면 저장하는 법
- npm install multer
- HTML - form 태그로 감싼 input 태그 만들기(name 중요)
<form id="imgForm" method="POST" enctype="multipart/form-data", action="/uploadImg"> <input type="file" id="inputImg" name="myImg" accept=".jpg,.png"> </form>
- 스크립트 - input 태그로 파일 선택을 하면 form 태그 submit 시키기
$('#inputImg').on('change',submit); function submit() { $('#imgForm').submit(); }
- app.js - multer 를 이용해 라우팅 처리하기
- 주석으로 적어둔 파일 저장 경로와 파일명 그리고 파일 업로드 후의 작업을 상황에 맞게 작성하면 되겠다.// app.js var multer = require('multer'); var imgStorage = multer.diskStorage({ destination: function(req, file, callback) { callback(null, 'public/img'); // 저장할 파일 경로 }, filename: function(req, file, callback) { fName = file.originalname; // 저장할 파일명 = 원래 파일명 callback(null, fName); } }); var imgUpload = multer({ storage: imgStorage, fileFilter: function(req, file, callback) { var ext = path.extname(file.originalname); console.log('ext : '+ ext); if (ext !== '.png' && ext !== '.jpg' && ext !== '.JPG' && ext !== '.PNG') { console.log('not png, jpg'); //return callback(null, false); } else { console.log('correct png, jpg'); callback(null, true); } } }); app.post('/uploadImg', imgUpload.single('myImg'), function(req, res) { res.json({done:1}); // 파일 업로드 후의 작업 작성 });
- single() 함수는 단일 파일을 저장할 때 쓰이며, 파일이 여러개일 경우 array(), fields() 이라는 함수를 쓴다.
- single() 의 파라미터로 input 태그의 name 을 입력해야 한다.
이전에 포스팅한 이미지 파일 미리보기 기능과 연계하여, 미리보기 확인 후 업로드하는 기능을 만들어도 좋을 것 같다.
[개발/Nodejs] - jQuery 이미지 파일 선택시 보여주기
반응형
'개발 > Nodejs' 카테고리의 다른 글
Nodejs nodemailer 로 이메일 보내기(파일 첨부) (0) | 2021.08.02 |
---|---|
Nodejs 로그 저장하기(winston 모듈) (0) | 2021.07.31 |
자바스크립트 비동기 실행순서 보장 그냥 간단히 따라하기 (1) | 2021.07.26 |
jQuery 이미지 파일 선택시 보여주기 (1) | 2021.07.23 |
jQuery 깜빡임 없이 동적 페이지 전환 구현하기(뒤로가기, 새로고침 지원) (0) | 2021.07.18 |
Comments