[英]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.