가장 간단한 업로더? 강력한 Node.js 객체 업로더 만들기

서버에 개체를 업로드하는 것은 일반적으로 백엔드 개발 및 웹 개발의 핵심 개념 중 하나입니다.

이미지가 없는 웹 사이트를 보는 것은 매우 드뭅니다. 대부분의 경우 이러한 웹 사이트는 정적이 아니며 이미지와 세부 정보는 관리자 패널 대시보드에서 관리됩니다. 또는 웹 사이트에서 세부 정보가 있는 파일을 첨부하는 양식을 본 적이 있습니다. .

업로더는 서버가 클라이언트 측에서 다가오는 파일을 처리하도록 하는 방법에 대한 방법입니다.

이 기사에서는 파일 유형에 제한을 두지 않고 추가 패키지를 사용하지 않고 거의 모든 파일 유형에 대해 작동하는 파일 업로더를 만드는 방법에 대해 설명합니다.
  • 요즘은 업로더를 생성하는 방식과 우리가 구축하는 방식을 비교합니다
  • .

    파일을 서버로 전송하는 두 가지 일반적인 방법이 있습니다(전체 파일이므로 여기에는 스트림 없음).
  • 파일을 양식 데이터로 보내기: 예를 들어 파일이 첨부된 HTML 양식을 제출하면 Multipart로 레이블이 지정됩니다.
    이를 위해서는 일반적으로 Multer 과 같은 본문에서 이 복잡한 데이터를 구문 분석할 수 있는 본문 구문 분석기가 필요합니다.
  • 파일을 문자열로 보내기: 파일을 base64 인코딩으로 변환하고 본문에서 JSON으로 보내는 것과 같습니다.
    한 가지 알아 두어야 할 것은 Base64 인코딩은 각 3비트를 4비트로 작성하여 파일 크기를 최대 %30까지 증가시킨다는 것입니다.

  • 우리가 하는 일:
  • 간단하게 유지하기 위해 다중 부분에 대한 구문 분석기를 사용하지 않을 것이므로 base64 또는 이미지 텍스트 영역을 허용합니다.
  • 크기가 커지더라도 매우 큰 파일에는 이 방법을 사용하면 안 되며 작은 파일(최대 100MB)에서는 큰 차이가 없습니다.
  • Node.js의 Fs 모듈 기능만 사용합니다
  • .

    세상에는 많은 패키지가 있지만 때로는 제한 없이 무엇이든 수락할 수 있는 간단한 것이 필요합니다.

    시작하자

    이 API에 도달하는 모든 파일은 base64로 인코딩되어야 합니다. Front-End에서 base64 업로더가 있는 많은 라이브러리를 찾을 수 있습니다.

    문자열이 너무 커지지 않도록 1px x 1px 이미지를 얻었습니다.



    온라인 변환기에서 base64로 변환했습니다Base64 encoder.

    코딩을 시작하자

    새로운 node.js 프로젝트 생성 =>

    먼저 이것을 실행하여 node.js 프로젝트를 생성합니다.

    npm init
    




    그런 다음 업로더를 위한 놀이터로 index.js를 생성합니다.

    먼저 Node.js의 Fs 코어 모듈을 가져와 파일에 base64 예제를 넣겠습니다.

    const fs = require("fs").promises;
    
    let exampleImage = "data:image/png;base64,
    iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAAAXNSR0IArs4c6QAAAAxJREFUGFdjcOyfCQACfgFqcbSa6QAAAABJRU5ErkJggg=="
    
    


    그런 다음 함수 업로드를 추가하고 간단하게 이름을 지정하고 간단하게 파일 접미사를 하드코딩했지만 일반적으로 base64로 인코딩된 문자열에는 파일 유형도 포함되며 이름으로 입력할 수 있습니다.${파일 접미사 추출}.

    
    const upload = async (base64) => {
      const fileSuffix = "png"
      const name = `anyFileName.${fileSuffix}`
      const dir = `${__dirname}/file/${name}`;
      const base64Data = Buffer.from(
            base64.replace(/^data:image\/\w+;base64,/, ""),
            "base64"
          ); 
      await fs.writeFile(`${dir}`, base64Data);
    };
    
    


    그런 다음 저장하려는 디렉토리가 있고 기본적으로 Base64Data에서 base64를 추출하여 버퍼로 전환합니다.

    마지막으로 지정된 폴더에 데이터를 씁니다.

    그런 다음 기능을 실행하십시오

    upload(exampleImage);
    


    이것은 프로그램을 실행한 결과입니다.

    node index.js
    


    출력은 이미지를 성공적으로 저장했다는 것입니다.



    이것만으로도 원하는 개체를 저장할 수 있습니다. .. base64가 필요하고 업로드된 파일이 무엇인지 간단히 알 수 있습니다. PDF, 이미지 또는 파일인 경우.

    이 기사를 읽어 주셔서 감사합니다.

    좋은 웹페이지 즐겨찾기