> 웹 프론트엔드 > 프런트엔드 Q&A > nodejs blob을 파일로

nodejs blob을 파일로

WBOY
풀어 주다: 2023-05-11 17:03:37
원래의
2565명이 탐색했습니다.

프런트 엔드 개발에서는 Blob 개체를 파일로 변환해야 할 필요성이 발생할 수 있습니다. Blob은 임의의 이진 데이터를 나타낼 수 있는 Web API의 개체 유형입니다. 파일은 파일 이름, 파일 형식, 파일 크기 등과 같은 속성을 가진 엔터티입니다. 업로드, 저장 및 기타 작업을 위해 브라우저를 통해 Blob 개체를 파일 형식으로 변환해야 하는 경우가 많습니다.

Node.js 환경에서는 Node에 내장된 모듈 fs를 사용하여 파일 작업을 수행할 수 있고, Buffer를 사용하여 바이너리 데이터를 처리할 수 있습니다. 따라서 Blob 객체를 Buffer로 변환하여 Blob 객체를 파일로 변환한 다음 fs 모듈을 사용하여 Buffer를 파일에 쓸 수 있습니다.

구체적인 구현 단계는 다음과 같습니다.

  1. Blob 개체를 가져옵니다. 다음 코드를 통해 Blob 객체를 얻을 수 있습니다.
let blob = new Blob([arrayBuffer], { type: 'image/png' });
로그인 후 복사

여기서 바이너리 데이터를 포함하는 Blob 객체가 생성됩니다.

  1. Blob을 버퍼로 변환합니다. Node.js의 버퍼 모듈을 사용하여 Blob 객체를 버퍼로 변환할 수 있습니다. 구체적인 코드는 다음과 같습니다.
const buffer = Buffer.from(await blob.arrayBuffer());
로그인 후 복사

여기서는 Blob의 arrayBuffer() 메소드를 사용하여 바이너리 데이터를 얻어 Buffer로 변환합니다.

  1. 파일에 쓰기. Node.js의 fs 모듈을 사용하면 Buffer를 파일에 쓸 수 있습니다. 구체적인 코드는 다음과 같습니다.
fs.writeFile('test.png', buffer, (err) => {
  if (err) throw err;
  console.log('The file has been saved!');
});
로그인 후 복사

여기서 Buffer는 "test.png"라는 파일에 기록됩니다. 파일을 작성하면 예외가 발생합니다. 그렇지 않으면 "파일이 저장되었습니다!"가 콘솔에 출력됩니다.

전체 코드는 다음과 같습니다.

const fs = require('fs');
const fetch = require('node-fetch');

async function downloadFile(url) {
  const res = await fetch(url);
  const blob = await res.blob();
  const buffer = Buffer.from(await blob.arrayBuffer());
  fs.writeFile('test.png', buffer, (err) => {
    if (err) throw err;
    console.log('The file has been saved!');
  });
}

downloadFile('https://www.example.com/test.png');
로그인 후 복사

이 코드는 원격 서버의 이미지 파일을 로컬에 다운로드하여 "test.png" 파일로 저장할 수 있습니다.

요약:

이 글에서는 Blob 객체를 파일로 변환하는 방법을 소개합니다. Node.js 환경에서는 Buffer 및 fs 모듈을 사용하여 이 기능을 구현할 수 있습니다. 이 방법은 프런트엔드의 Blob 객체를 파일로 변환해야 할 때나 Node.js 환경에서 바이너리 데이터를 처리하여 파일로 저장해야 할 때 매우 유용합니다.

위 내용은 nodejs blob을 파일로의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿