yuxuannnn_utils
Version:
76 lines (75 loc) • 2.37 kB
JavaScript
;
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;