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,但返回值都是乱码,这又该咋办呢?
迷茫2017-04-17 15:55:09
パスに何か問題がありますか? 具体的な戻り値は、インターフェイスでの {"code":"EISDIR"} の定義方法によって異なります。
Express はサーバー上で実行されるプログラムです。たとえば、ブラウザ設定はデフォルトでデスクトップにダウンロードされます。
res.download の API は次のとおりです:
res.download(path, [filename], [fn])
path にあるファイルを「添付ファイル」として転送します。通常、ブラウザはユーザーにダウンロードを要求します。Content-Disposition の「filename=」パラメータ、別名ブラウザのダイアログに表示されるパラメータはデフォルトで path に設定されますが、上書きファイル名を指定することもできます。
エラーが発生した場合、または転送が完了した場合、オプションのコールバック fn が呼び出され、このメソッドは res.sendfile() を使用してファイルを転送します。
リーリー