我有一个文件存储在外部服务器上。我希望能够调用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。
答案 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)