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=" 매개변수는 기본적으로 경로로 설정되지만 제공할 수도 있습니다. 파일 이름을 재정의합니다.
오류가 발생하거나 전송이 완료되면 선택적 콜백 fn이 호출됩니다. 이 메소드는 res.sendfile()을 사용하여 파일을 전송합니다.
으아악