>웹 프론트엔드 >JS 튜토리얼 >ExpressJS를 사용하여 NodeJS 서버에서 파일을 어떻게 다운로드할 수 있나요?

ExpressJS를 사용하여 NodeJS 서버에서 파일을 어떻게 다운로드할 수 있나요?

Patricia Arquette
Patricia Arquette원래의
2024-11-30 14:34:11530검색

How Can I Download Files from a NodeJS Server Using ExpressJS?

Express를 사용하여 NodeJS 서버에서 파일 다운로드

NodeJS 서버의 웹페이지에 액세스할 때 NodeJS 서버에 저장된 파일을 다운로드해야 할 수도 있습니다. 서버. 이 문서에서는 ExpressJS 프레임워크를 사용하여 파일을 다운로드하는 과정을 안내합니다.

ExpressJS 파일 다운로드

파일 다운로드를 시작하려면 res.download()를 사용하세요. ExpressJS에서 제공하는 메소드입니다. 이 방법은 파일 첨부 및 처리에 필요한 HTTP 헤더를 자동으로 설정합니다.

시연 방법:

app.get('/download', (req, res) => {
  res.download(`${__dirname}/upload-folder/dramaticpenguin.MOV`);
});

파일 이름 및 유형 포함

별 기본적으로 다운로드된 파일의 이름은 "다운로드"입니다. 사용자 정의 파일 이름과 유형을 지정하려면 추가 HTTP 헤더를 설정해야 합니다.

  • 파일 이름: res.setHeader('Content-disposition', 'attachment; filename= Dramaticpenguin.MOV')
  • 파일 형식: res.setHeader('Content-type', 'video/quicktime')

포괄적인 구현

다음은 MIME 라이브러리를 사용하여 다음을 결정하는 보다 강력한 구현입니다. 파일의 MIME 유형 동적으로:

const path = require('path');
const mime = require('mime');
const fs = require('fs');

app.get('/download', (req, res) => {
  const file = __dirname + '/upload-folder/dramaticpenguin.MOV';
  const filename = path.basename(file);
  const mimetype = mime.getType(file);

  res.setHeader('Content-disposition', `attachment; filename=${filename}`);
  res.setHeader('Content-type', mimetype);

  const filestream = fs.createReadStream(file);
  filestream.pipe(res);
});

res.write() 사용

res.write() 접근 방식을 선호하는 경우 Content-Disposition 및 Content-Length 헤더를 설정하세요. 첫 번째:

res.setHeader('Content-disposition', 'attachment; filename=dramaticpenguin.MOV');
res.setHeader('Content-Length', file.length);
res.write(file, 'binary');

최적의 파일 전송을 위해 동기식 방법보다는 readStream을 일관되게 사용하는 것을 기억하세요. 공연.

위 내용은 ExpressJS를 사용하여 NodeJS 서버에서 파일을 어떻게 다운로드할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.