簡體   English   中英

Express – 從外部 URL 下載文件

[英]Express – download file from an external URL

我有一個文件存儲在外部服務器上。 我希望能夠向我自己的 NodeJS 服務器調用GET請求(使用express )。 我目前正在做的幾乎可以,但它不會觸發瀏覽器下載文件(沒有顯示用於下載的瀏覽器 UI):

const express = require('express');

const app = express();

app.get('/download-file', (req, res) => {
  const externalRequest = http.request({
    hostname: 'my.external-server.com',
    path: '/my/path/my-file.zip',
  }, (externalRes) => {
    res.setHeader('Content-Disposition', 'attachment; filename="MyFile.zip"');
    externalRes.pipe(res);
  });
  return externalRequest.end();
});

app.listen(8080, () => console.log('Server is listening'));

我在這里缺少什么? 我看到觸發對localhost:8080/download-file的 GET 請求實際上是在獲取它,但沒有顯示用於下載的 UI。

這是在我的一個寵物項目中運行的代碼,希望它有所幫助。

它通過管道傳輸下載請求,但沒有下載的大小信息,因此它成為您不知道何時完成的下載之一。

const http = require('http')

app.get('/down_file/:file_name', (req, res) => {

    const fileName = req.params.file_name
    const url = "http://externalUrl/" + fileName

    var externalReq = http.request(url, function(externalRes) {
        res.setHeader("content-disposition", "attachment; filename=" + fileName);
        externalRes.pipe(res);
    });
    externalReq.end();
})

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM