我正在发出GET请求,以通过浏览器下载PDF文件,但没有得到回应。我不知道我要去哪里错了。遵循我的代码
我的控制器
download: function(req, res) {
var nomeContrato = req.params.contrato;
var cpfAluno = req.params.cpf
db.query("select descricao from tparametro where valor = 'PATH'", function (err, rows) {
if (err) {
var message = err.message;
console.log('Erro ' + message);
return res.status(500).send(message);
}else {
var caminhoDiretorio = rows[0].descricao;
var caminhoComSubdiretorio = caminhoDiretorio + path.sep + cpfAluno;
var caminhoCompleto = caminhoComSubdiretorio + path.sep + nomeContrato;
fs.readFile(caminhoCompleto, function(err, arquivo) {
if (err) throw err;
//console.log('Arquivo:' + arquivo);
var data = [];
data.push(arquivo);
data = Buffer.concat(data);
//console.log('Arquivo:' + data);
res.writeHead(200, {
'Content-Type': 'application/pdf',
'Content-Disposition': 'attachment; filename=some_file.pdf',
'Content-Length': data.length
});
res.write(data);
res.end(data);
});
}
});
}
浏览器收到响应
响应头
答案 0 :(得分:0)
使用'res.sendFile()更容易,例如:
var filePath = "./dir/example.pdf"
return res.sendFile(filePath);
答案 1 :(得分:0)
有没有您不能做的原因:
var caminhoDiretorio = rows[0].descricao;
var caminhoComSubdiretorio = caminhoDiretorio + path.sep + cpfAluno;
var caminhoCompleto = caminhoComSubdiretorio + path.sep + nomeContrato;
res.download(caminhoCompleto);