Express-从外部URL下载文件

时间:2019-04-15 16:03:13

标签: javascript node.js express

我有一个文件存储在外部服务器上。我希望能够调用GET对我自己的NodeJS服务器的请求(使用express)。我当前正在做什么几乎可以,但是它不会触发浏览器下载文件(未显示用于下载的浏览器用户界面):

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。

1 个答案:

答案 0 :(得分:0)

这是在我的一个宠物项目中运行的代码,希望对您有所帮助。

它对下载请求进行了管道传输,但没有下载的大小信息,因此它成为您不知道何时完成的下载之一。

import pyomo.environ as pyo

m = pyo.AbstractModel()

### SETS
m.V = pyo.Set()
m.C = pyo.Set()
m.VC = pyo.Set(within = m.V*m.C)

### VARS
m.select = pyo.Var(m.VC, domain=pyo.Binary)

### CONSTRAINTS
def constr(m,v):
    return sum(m.select[v,c] for c in m.C if (v,c) in m.VC) == 2
m.Constraint = pyo.Constraint(m.V, rule= constr)