vue 附件上传获取附近内容_vue上传txt文件,并且读取txt内容

本文介绍了一个Vue项目的需求,即点击上传按钮选择TXT文件后,能实时读取并显示文件内容。通过使用Element UI的upload组件,配合FileReader API重写了readAsBinaryString函数,实现了在beforeUpload钩子中读取文件内容。当文件被选择后,通过FileReader.onload事件处理读取到的数据,并将内容追加到已有文本中。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

需求:点击上传txt文件,先读取txt文件中的内容进行展示。

上传使用的是element的upload如下:

上传文件

下面是业务逻辑:

beforeCreate() {

// 读取文件

FileReader.prototype.reading = function ({encode} = pms) {

let bytes = new Uint8Array(this.result); //无符号整型数组

let text = new TextDecoder(encode || 'UTF-8').decode(bytes);

return text;

};

/* 重写readAsBinaryString函数 */

FileReader.prototype.readAsBinaryString = function (f) {

if (!this.onload) //如果this未重写onload函数,则创建一个公共处理方式

this.onload = e => { //在this.onload函数中,完成公共处理

let rs = this.reading();

console.log(rs);

};

this.readAsArrayBuffer(f); //内部会回调this.onload方法

};

},

methods:{

beforeUpload(file){

this.fileList = [file]

console.log('选择了文件beforeUpload')

// 读取数据

this.read(file);

return false

},

read(f) {

let rd = new FileReader();

rd.onload = e => {

//this.readAsArrayBuffer函数内,会回调this.onload函数。在这里处理结果

let cont = rd.reading({encode: 'GBK'});

console.log(cont);

let formerData = this.textData;

this.textData = formerData + "\n" + cont;

};

rd.readAsBinaryString(f);

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值