文本内容转变成Blob 下载
/**
* @brief 文本内容转变成Blob 下载
* @param[in] content 下载内容 文本
* @param[in] filename 文件名
* @return None
*/
export default function (content, filename) {
// const TextToBlobDownload = function (file) {
(function (content, filename) { // ctx.fillStyle = lay[i].bgColor;
if ('download' in document.createElement('a')) {
// 作为文件下载
var eleLink = document.createElement('a');
eleLink.download = filename;
eleLink.style.display = 'none';
// 字符内容转变成blob地址
var blob = new Blob([content]);
eleLink.href = URL.createObjectURL(blob);
// 触发点击
document.body.appendChild(eleLink);
eleLink.click();
// 然后移除
document.body.removeChild(eleLink);
} else {
alert('浏览器不支持');
}
})(content, filename);
}
URL内容转变成Blob 下载
/**
* @brief URL内容转变成Blob 下载
* @param[in] url 下载链接
* @param[in] name 文件名
* @return None
*/
export default function (url, name) {
// const UrlToBlobDownload = function (file) {
(function (url, name) {
name = name || "下载.png";
var oA = document.createElement("a");
console.log(name);
oA.download = name; // 设置下载的文件名,默认是'下载'
oA.href = url;
document.body.appendChild(oA);
oA.click();
oA.remove(); // 下载之后把创建的元素删除
})(url, name);
}
input File的内容转变成Blob链接
/**
* @brief input File的内容转变成Blob链接
* @param[in] file 文件信息
* @return None
*/
export default function (file) {
// const InputFileToBlobUrl = function (file) {
var url = null;
if (window.createObjectURL != undefined) {
//basic
url = window.createObjectURL(file);
} else if (window.URL != undefined) {
//mozilla(firefox)兼容火狐
url = window.URL.createObjectURL(file);
} else if (window.webkitURL != undefined) {
//webkit or chrome
url = window.webkitURL.createObjectURL(file);
}
return url;
}
计算字符串 字符个数 中文算两个字符 英文一个字符
/**
* @brief 计算字符串 字符个数 中文算两个字符 英文一个字符
* @param[in] str 字符串文本
* @return number 字符串字符个数
*/
export default function (str) {
// const StrLenChinese = function (str) {
var len = 0;
for (var i = 0; i < str.length; i++) {
var c = str.charCodeAt(i);
//单字节加1
if ((c >= 0x0001 && c <= 0x007e) || (0xff60 <= c && c <= 0xff9f)) {
len++;
}
else {
len += 2;
}
}
return len;
}
异步操作,得到promise input File 的JSON文件 内容转变成JSON数据
export default function (filePath, code) {
// const InputFileToBlobUrl = function (filePath, code) {
code = code || "UTF-8";
let p = new Promise((resolve, reject) => {
var reader = new FileReader();
reader.readAsText(filePath, code);
reader.onload = (e) => {
let json = e.target.result;
let tag = false;
let obj = null;
try {
obj = JSON.parse(json);
tag = true;
} catch (error) {
reject(error);
}
if (tag) {
resolve(obj);
} else {
reject(error);
}
};
});
return p;
}