UNPKG

node-web-mvc

Version:
34 lines (33 loc) 1.42 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); /** * @module ResponseFile * @description 返回文件 */ const fs_1 = __importDefault(require("fs")); const path_1 = __importDefault(require("path")); const HttpStatus_1 = __importDefault(require("../http/HttpStatus")); const MediaType_1 = __importDefault(require("../http/MediaType")); const ResponseEntity_1 = __importDefault(require("./ResponseEntity")); const Resource_1 = __importDefault(require("../resources/Resource")); class ResponseFile extends ResponseEntity_1.default { constructor(file, attachment) { super(HttpStatus_1.default.OK); file = path_1.default.isAbsolute(file) ? file : path_1.default.resolve(file); this.file = file; if (!fs_1.default.existsSync(file) || !fs_1.default.lstatSync(file).isFile()) { this.responseStatus = HttpStatus_1.default.NOT_FOUND; } else { this.body = new Resource_1.default(file); this.setContentType(new MediaType_1.default('application/octet-stream')); } if (attachment) { this.setHeader('Content-Disposition', 'attachment;filename=' + encodeURI(path_1.default.basename(this.file))); } } } exports.default = ResponseFile;