router.use("/download",function (req, res, next) {
res.download('d:/myFile/','模板.xlsx',function (err) {
if(err){
res.send(err);
}else{
res.send(true);
}
});
});
后来又返回了以下这个
code:"ENOENT"
errno:-4058
expose:false
path:"E:企业版开通模板.xlsx"
status:404
statusCode:404
syscall:"stat"
res.download()的status code 是200 ok,但返回值都是乱码,这又该咋办呢?
你的路径是不是有问题,具体的返回值,要看接口怎么定义{"code":"EISDIR"}?
express是在服务端运行的程序,具体要下载到那个目录,是客户端来决定的,比如:浏览器设定默认下载到桌面。
res.download的API如下:
res.download(path, [filename], [fn])
Transfer the file at path as an “attachment”, typically browsers will prompt the user for download. The Content-Disposition “filename=” parameter, aka the one that will appear in the brower dialog is set to path by default, however you may provide an override filename.
When an error has ocurred or transfer is complete the optional callback fn is invoked. This method uses res.sendfile() to transfer the file.