123 lines
3.1 KiB
TypeScript
123 lines
3.1 KiB
TypeScript
|
|
|
|
export class textFile
|
|
{
|
|
/**保存单文件 text类型的 */
|
|
static saveFile(filename: string, content: string)
|
|
{
|
|
let blob = new Blob([content], { type: "text/plain;charset=utf-8" });
|
|
this.saveAs(filename, blob);
|
|
}
|
|
|
|
/**读取文件 选择文件组件,读取文档处理函数 */
|
|
static readFile(eleFile, fn_doText, fileType = "", fn_msg = null)
|
|
{
|
|
let noEleFile = !(eleFile);
|
|
if (noEleFile)
|
|
{
|
|
eleFile = document.createElement('input');
|
|
eleFile.type = 'file';
|
|
eleFile.accept = 'text/*';
|
|
eleFile.hidden = true;
|
|
document.body.appendChild(eleFile);
|
|
}
|
|
|
|
|
|
if (fileType && fileType != "") eleFile.accept = fileType;
|
|
let reader = new FileReader();
|
|
reader.onload = function (event)
|
|
{
|
|
let text = event.target["result"];
|
|
if (fn_doText) fn_doText(text);
|
|
};
|
|
// 选择文件
|
|
eleFile.onchange = function (event)
|
|
{
|
|
let file = event.target.files[0];
|
|
if (file)
|
|
{
|
|
reader.readAsText(file);
|
|
}
|
|
if (fn_msg != null)
|
|
{
|
|
fn_msg();
|
|
}
|
|
};
|
|
eleFile.click();
|
|
|
|
if (noEleFile)
|
|
{
|
|
document.body.removeChild(eleFile);
|
|
}
|
|
|
|
}
|
|
|
|
static getStringFromFile(eleFile, fileType = "", fn_msg = null): string
|
|
{
|
|
let noEleFile = !(eleFile);
|
|
if (noEleFile)
|
|
{
|
|
eleFile = document.createElement('input');
|
|
eleFile.type = 'file';
|
|
eleFile.accept = 'text/*';
|
|
eleFile.hidden = true;
|
|
document.body.appendChild(eleFile);
|
|
}
|
|
|
|
|
|
if (fileType && fileType != "") eleFile.accept = fileType;
|
|
let reader = new FileReader();
|
|
reader.onload = function (event)
|
|
{
|
|
let text = event.target["result"];
|
|
return text;
|
|
};
|
|
// 选择文件
|
|
eleFile.onchange = function (event)
|
|
{
|
|
let file = event.target.files[0];
|
|
if (file)
|
|
{
|
|
reader.readAsText(file);
|
|
}
|
|
if (fn_msg != null)
|
|
{
|
|
fn_msg();
|
|
}
|
|
};
|
|
eleFile.click();
|
|
|
|
if (noEleFile)
|
|
{
|
|
document.body.removeChild(eleFile);
|
|
}
|
|
return '';
|
|
}
|
|
/**保存文件 */
|
|
static saveAs(fileName: string, data: Blob)
|
|
{
|
|
// 创建隐藏的可下载链接
|
|
let eleLink = document.createElement('a');
|
|
eleLink.download = fileName;
|
|
eleLink.style.display = 'none';
|
|
eleLink.href = URL.createObjectURL(data);
|
|
// 触发点击
|
|
document.body.appendChild(eleLink);
|
|
eleLink.click();
|
|
// 然后移除
|
|
document.body.removeChild(eleLink);
|
|
}
|
|
|
|
static readFile2()
|
|
{
|
|
let rf = document.createElement('input');
|
|
rf.type = 'file';
|
|
rf.accept = 'text/*';
|
|
rf.hidden = true;
|
|
|
|
|
|
document.body.removeChild(rf);
|
|
}
|
|
|
|
}
|