Node.js를 사용하여 서버에서 클라이언트로 파일을 다운로드하는 방법은 무엇입니까?
6671 단어 node
Node.js 서버에서 클라이언트로 파일을 다운로드하려면 파일을 읽고 응답 헤더
Content-Disposition
를 설정해야 합니다.resume.pdf
라는 디렉토리에 docs
라는 이름의 PDF가 있고 사용자가 /resume
끝점으로 이동할 때마다 해당 PDF를 다운로드하려고 한다고 가정해 보겠습니다.이에 대한 코드를 작성해 보겠습니다. 🦄
먼저 다음과 같이 파일을 읽을 읽기 스트림을 생성합니다.
// filesystem module
const fs = require("fs");
// endpoint for /resume
app.get("/resume", (req, res) => {
const rs = fs.createReadStream("./docs/resume.pdf");
});
그런 다음
Content-Disposition
응답 헤더를 설정하고 값을 attachment; filename=nameOftheFileYouWant.pdf
로 지정합니다. 이것은 사용자의 브라우저에 이것이 다운로드해야 하는 첨부 파일임을 알려줍니다.// filesystem module
const fs = require("fs");
// endpoint for /resume
app.get("/resume", (req, res) => {
// create read steam for the pdf
const rs = fs.createReadStream("./docs/resume.pdf");
// set response header: Content-Disposition
res.setHeader("Content-Disposition", "attachment; john-resume.pdf");
});
헤더를 설정한 후에는 읽기 스트림을 그의
Response
메서드를 사용하여 res
개체pipe()
로 파이프하기만 하면 됩니다.// filesystem module
const fs = require("fs");
// endpoint for /resume
app.get("/resume", (req, res) => {
// create read steam for the pdf
const rs = fs.createReadStream("./docs/resume.pdf");
// set response header: Content-Disposition
res.setHeader("Content-Disposition", "attachment; john-resume.pdf");
// pipe the read stream to the Response object
rs.pipe(res);
});
Express.js를 사용하는 경우 res.download() 메서드를 사용하고 다음과 같이 파일 경로를 인수로 전달할 수 있습니다.
// filesystem module
const fs = require("fs");
// endpoint for /resume
app.get("/resume", (req, res) => {
// express.js
res.download("./docs/resume.pdf");
});
😃 유용하셨다면 공유해 주세요.
Reference
이 문제에 관하여(Node.js를 사용하여 서버에서 클라이언트로 파일을 다운로드하는 방법은 무엇입니까?), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/melvin2016/how-to-download-files-from-server-to-client-using-node-js-5017텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)