我想使用express渲染文件并同时下载文件
我当前的代码如下:
res.attachment('filename.csv');
res.render('pages/result', { data });
但是,如果我这样做,它只会下载数据而不会呈现视图
我想要呈现一个成功页面,然后发送文件以便下载
我需要使用1个端点来完成此操作,因为我需要生成文件,并且只有在文件成功的情况下,我才会呈现成功页面
我可以使用1个端点执行此操作吗?
谢谢
答案 0 :(得分:0)
不要认为在1个端点中都可以做到。您可以做的是,每当您要下载文件时,都放置一个js代码以有条件地将文件下载到ejs模板中,以便仅在需要时才下载。
答案 1 :(得分:0)
将文件的路径作为变量发送到渲染页面,并使用javascript编写函数以自动下载文件。
res.render('pages/result', { path: '../folder/filename.csv'});
呈现页面上
<iframe id="my_iframe" style="display:none;"></iframe>
<script>
function Download(url) {
document.getElementById('my_iframe').src = #{path};
};
</script>