UNPKG

yuxuannnn_utils

Version:
76 lines (75 loc) 2.37 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.changeBuffer = exports.getFileSuffix = exports.changeFileToBase64 = exports.getMegabyte = void 0; const SparkMD5 = require("spark-md5"); /** * 获取兆的字节数 * @param n * @returns */ const getMegabyte = (n) => { return n * 1024 * 1024; }; exports.getMegabyte = getMegabyte; /** * 将File对象转换成base64 可以进行不用上传到服务器也能进行图片预览 * @param file */ const changeFileToBase64 = (file) => { return new Promise((resolve, reject) => { let fileReader = new FileReader(); fileReader.onload = function (e) { var _a; if ((_a = e.target) === null || _a === void 0 ? void 0 : _a.result) { resolve(e.target.result); } else { reject('e.target.result is undefined'); } }; fileReader.readAsDataURL(file); }); }; exports.changeFileToBase64 = changeFileToBase64; /** * 获取文件的后缀 */ const getFileSuffix = (filename, defaultSuffix) => { let suffix = ''; const regExpExecArray = /\.([a-zA-Z0-9]+)$/.exec(filename); if (regExpExecArray) { suffix = regExpExecArray[1]; } if (defaultSuffix && !suffix) { suffix = defaultSuffix; } return suffix; }; exports.getFileSuffix = getFileSuffix; /** * 将文件进行解析生成唯一的hash * @param file * @returns */ const changeBuffer = (file) => { return new Promise((resolve, reject) => { let fileReader = new FileReader(); fileReader.readAsArrayBuffer(file); fileReader.onload = (ev) => { var _a; let buffer = (_a = ev === null || ev === void 0 ? void 0 : ev.target) === null || _a === void 0 ? void 0 : _a.result, spark = new SparkMD5.ArrayBuffer(), hash, suffix = (0, exports.getFileSuffix)(file.name); if (!buffer) { reject('文件解析失败'); } spark.append(buffer); hash = spark.end(); resolve({ buffer: buffer, hash, suffix, filename: `${hash}.${suffix}`, }); }; }); }; exports.changeBuffer = changeBuffer;