node-web-mvc
Version:
node spring mvc
34 lines (33 loc) • 1.42 kB
JavaScript
;
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;