728x90
Node.js 로 파일 업로드와 관련한 내용을 찾아보았다. 노드로 백엔드 구축하는데 이번이 처음이기에 Java로 구축한 부분과 사뭇 많이 달랐다. 간결하고 속도가 빠르다고 느껴졌다... 그냥 느낌인가??
multer , node.js cors 등등 다양한 부분을 공부하였고 참고한 사이트 주소들이다.
https://bigexecution.tistory.com/7
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 |