[javascript] Next.js에서의 파일 업로드 처리 방법은 어떤 것이 있나요?

다음은 Next.js에서 Multer를 사용하여 파일 업로드 처리하는 예시 코드입니다.

  1. 먼저, Multer를 설치합니다. 터미널에서 다음 명령어를 실행해주세요:
npm install multer
  1. 그리고 Next.js pages 디렉토리에 파일 업로드를 처리할 API 엔드포인트를 생성합니다. 예를 들어, pages/api/upload.js 파일을 생성합니다.
import multer from 'multer';

const upload = multer({ dest: 'uploads/' });

export default upload.single('file')(req, res) => {
  // 파일 업로드 처리 로직을 작성합니다.
  // req.file과 req.body를 사용하여 파일 및 기타 데이터에 접근할 수 있습니다.
};
  1. 이제 파일 업로드를 위한 form을 Next.js 페이지에 추가합니다. 예를 들어, pages/index.js 파일에 다음과 같은 코드를 작성합니다.
import React from 'react';

export default function Home() {
  const handleFileUpload = async (e) => {
    const file = e.target.files[0];

    const formData = new FormData();
    formData.append('file', file);

    await fetch('/api/upload', {
      method: 'POST',
      body: formData,
    });

    // 파일 업로드 이후의 동작을 수행합니다. 예를 들어, 페이지 새로고침 또는 다음 화면으로 이동 등을 처리할 수 있습니다.
  };

  return (
    <div>
      <input type="file" onChange={handleFileUpload} />
    </div>
  );
}

이제 파일 업로드 관련 로직을 구현했습니다. Multer를 사용하여 파일을 업로드하고 Next.js의 API 엔드포인트에서 해당 파일을 처리할 수 있습니다.