suchen

Heim  >  Fragen und Antworten  >  Hauptteil

node.js - nodejs中res.download()的的status code 是200 ok,但响应的都是乱码,求解!

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

大家讲道理大家讲道理2781 Tage vor880

Antworte allen(1)Ich werde antworten

  • 迷茫

    迷茫2017-04-17 15:55:09

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

    Antwort
    0
  • StornierenAntwort