Nodejs, Express, Mongoose 서버에서 파일 저장 및 클라이언트 다운로...
-
게시물 수정 , 삭제는 로그인 필요
안녕하세요
multer를 이용하여
특정 파일을 서버로 업로드하고
그 binary 데이터를 mongoose의 Buffer 스키마타입으로 저장한 후에
클라이언트가 요청시 그걸 다시 다운로드 할 수 있는 기능을 만들고 있는데요
res.setHeader('Content-disposition', 'attachment; filename=' + legacy.file.originalName);
res.setHeader('Content-type', legacy.file.mimetype);
res.send(legacy.file.data);
위 코드는 데이터베이스에 저장되어 있는 데이터를 불러온 후 응답하는 코드입니다.
legacy.file에는 데이터베이스에서 불러온 Binary 데이터가 있구요
저렇게 코드를 작성하면
.js파일이나 주로 쓰는 파일은 브라우저 단에서 다운로드가 잘 되는데요
몇가지 파일들은 그냥 응답 지연됩니다. (오류가 아닌..)
혹시 왜그런지 이유를 아시는분 설명 부탁드립니다.
어차피 데이터베이스에 저장된 값은 모든 파일이 바이너리로 저장될텐데
왜 파일 포맷에 따라 어떤 건 되고 어떤건 안될까요
브라우저에서 결정하는 부분일까요?(그래서 컨텐츠 타입을 어느 파일이든지 하나로 고정해보기도 했습니다.)
아니면 첫번째 헤더 셋팅시에 파일 이름에 있는 확장자를 보고 결정되는 걸까요?
아무튼
Mongoose를 이용해 Buffer 타입으로 값을 저장후 이것을 다시 다운로드하는 형태로 제공하려면
어떻게 할까요?
![](https://img-api.cboard.net/img_n.php?image_url=https://kin-phinf.pstatic.net/20180323_166/15217944841369iACp_PNG/db.png)
![](https://img-api.cboard.net/img_n.php?image_url=https://kin-phinf.pstatic.net/20180323_166/15217944841369iACp_PNG/db.png)
#nodejs express 예제 #nodejs express 설치 #nodejs express example #nodejs express router #nodejs express typescript #nodejs express html #nodejs express session #nodejs express 배포 #nodejs express mysql #nodejs express generator