支持文件:jpg
、png
、gif
、html
、css
、js
let path = ""; // 文件路径
path = fileToBase(path);
log(path);
function fileToBase(p) { // 文件编码
let data, lack;
data = byteToBit(files.readBytes(p));
// 补位
lack = 6 - data.length % 6;
for (let i = 0; i < lack; i++) {
data += "0";
}
data = bitToBase(data);
// 加入文件信息
data = "data:" + fileType(p) + ";base64," + data;
for (let i = 0; i < lack / 2; i++) {
data += "=";
}
return data;
}
function byteToBit(b) { // 字节数组转二进制字符串
let bit = "";
b.forEach((i) => {
i = (i < 0 ? i + 256 : i).toString(2);
if (i.length < 8) {
// 字节补位
i = i.split("");
i.reverse();
for (let j = i.length; j < 8; j++) {
i[j] = "0";
}
i.reverse();
i = i.join("");
}
bit += i;
});
return bit;
}
function bitToBase(b) { // 编码器
let code = [],
base = "",
key;
// 分组,6 位一组
for (let i = 0; i < b.length; i += 6) {
code.push(b.substr(i, 6));
}
// 建立编码对照表
key = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".split("");
code.forEach((i) => {
base += key[parseInt(i, 2)];
});
return base;
}
function fileType(f) { // 文件类型判断
// 文件后缀列表
let img = ["jpeg", "png", "gif"],
txt = ["css", "html", "js"];
f = files.getExtension(f);
if (f == "jpg") f = "jpeg"; // jpg 是 jpeg 的简写
for (let i = 0; i < img.length; i++) {
if (f == img[i]) {
return "image/" + img[i];
}
}
for (let i = 0; i < txt.length; i++) {
if (f == txt[i]) {
return "text/" + txt[i];
}
}
// 错误提示
f = "不支持此类型文件!";
toast(f);
console.error(f);
exit();
}