node.js - nodejs中res.download()的的status code 是200 ok,但响应的都是乱码,求解!
大家讲道理
大家讲道理 2017-04-17 15:53:09
0
1
893

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,但返回值都是乱码,这又该咋办呢?

大家讲道理
大家讲道理

光阴似箭催人老,日月如移越少年。

Antworte allen(1)
迷茫

你的路径是不是有问题,具体的返回值,要看接口怎么定义{"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.

res.download('/report-12345.pdf');

res.download('/report-12345.pdf', 'report.pdf');

res.download('/report-12345.pdf', 'report.pdf', function(err){
  if (err) {
    // handle error, keep in mind the response may be partially-sent
    // so check res.headerSent
  } else {
    // decrement a download credit etc
  }
});
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage