본문 바로가기
Node.js

Node.js 파일 업로드

by JunsC 2024. 6. 9.
728x90

Node.js 로 파일 업로드와 관련한 내용을 찾아보았다. 노드로 백엔드 구축하는데 이번이 처음이기에 Java로 구축한 부분과 사뭇 많이 달랐다. 간결하고 속도가 빠르다고 느껴졌다... 그냥 느낌인가??

 

multer , node.js cors 등등 다양한 부분을 공부하였고 참고한 사이트 주소들이다.

 

 


 

https://velog.io/@shlog/multer-koa-react-%ED%8C%8C%EC%9D%BC-%EC%97%85%EB%A1%9C%EB%93%9C-%EB%B0%9B%EA%B8%B0

 

node + multer + koa + react : 파일 업로드 받기

 

velog.io

 

 

https://bigexecution.tistory.com/7

 

React 게시판 만들기 : 파일업로드 multer (5)

Multer Installation Multer는 multipart/form-data를 이용하여 파일을 업로드 할 수 있게 해주는 middleware이다. npm install multer package.json에 아래와 같이 설치가 된다. "multer": "^1.4.2", Multer Usage uploadRouter.js const ex

bigexecution.tistory.com

 

 

 

Node .js 에서 Springboot 같이 파일을 업로드 및 다운로드 하는 기능을 찾아보고 싶었다.

왜냐하면 그 기능이 필요하니깐 ㅎㅎㅎ

 

생각보다 Springboot 보단 복잡하다는 생각을 했다 

 

public void saveImage(MultipartFile file, String uuid, String user_uuid) throws Exception {
        String filename = uuid + "_" + user_uuid + "_" + file.getOriginalFilename();
        if (filename == null || filename.isEmpty()) {
            log.error("[saveImage] => Filename is empty");
        }
        if (filename.contains("_thumbnail")) {
            File destinationFile = new File(uploadDir + "/" + URLs.thumbnail + "/" + filename);
            if (!destinationFile.getParentFile().exists())
                destinationFile.getParentFile().mkdirs();
            file.transferTo(destinationFile);
        } else {
            File destinationFile = new File(uploadDir + "/" + URLs.image + "/" + filename);
            if (!destinationFile.getParentFile().exists())
                destinationFile.getParentFile().mkdirs();
            file.transferTo(destinationFile);
        }
        int res = fileMapper.insertFile(uuid, user_uuid, filename);
        log.info("[saveImage] => success cnt {}", res);
    }

 

이게 Springboot 에서 파일 다운로드이고 내가 사용중에 있다.

 

import multer from "multer";
import fs from "fs";
import { uploadDir } from "./Constants";
import uuid from "react-uuid";

/* 파일생성  */
fs.readdir(uploadDir, (error) => {
  // uploads 폴더 없으면 생성
  if (error) {
    fs.mkdirSync(uploadDir);
  }
});
const diskStorage = multer.diskStorage({
  // 목적지 주소
  destination: function (req, file, callback) {
    callback(null, uploadDir);
  },
  // 저장될 파일 이름
  filename: function (req, file, callback) {
    callback(null, uuid());
  },
});
const upload = multer({
  storage: diskStorage,
  limits: {
    files: 5,
    fileSize: 1024 * 1024 * 1024,
  },
});

export default upload;

 

이게 Node 에서 사용중인 Multer 이다

 

개인적으로 너무 간단하다... Node 부분이..

'Node.js' 카테고리의 다른 글

Node.js Jwt...  (1) 2024.06.09
Node.js 파라미터 받는법  (0) 2024.06.09
Node.js Typescript 적용  (0) 2024.06.09
Node.js Mysql 연동  (0) 2024.06.09
React_ Node.js Express.js npm npx ....  (0) 2024.04.26
"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."