120 lines
2.6 KiB
TypeScript
120 lines
2.6 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)
|
||
|
}
|
||
|
}
|