element el-upload 读取本地 txt 内容

今天想直接在浏览器端读取txt 的内容然后将读取到的文本内容上传到 服务器端。下面是整个读取过程的demo 仅供参考

<el-upload class="upload-demo" :auto-upload="false" :on-change="openFile">
                            <el-button size="small" type="primary">点击上传</el-button>
                            <div slot="tip" class="el-upload__tip">只能上传txt文件,且不超过500kb</div>
                        </el-upload>

这里我们要将 :auto-upload="false" 设置成false 不然会自动上传到服务器端

接下来就是读取代码的实现,其实也很简单,如下:

openFile(file) {
                    var reader = new FileReader();
                    reader.onload = function () {
                        if (reader.result) {
                            //打印文件内容
                            console.log(reader.result);
                        }
                    };
                    reader.readAsText(file.raw);
                }

这里我粘一下代码的截图(不重要的地方我已经折叠起来了)

最后运行结果是这样的

Element UI的el-upload组件可以用于文件上传,并且支持文件预览功能。在使用el-upload组件时,你可以通过设置属性来启用文件预览功能。 首先,确保你已经正确引入了Element UI库和el-upload组件。然后,在你的代码中使用el-upload组件,并设置以下属性: 1. 设置`action`属性为文件上传的接口地址。 2. 设置`show-file-list`属性为`false`,以隐藏默认的文件列表展示。 3. 设置`on-success`属性为一个回调函数,用于处理文件上传成功后的逻辑。 4. 设置`before-upload`属性为一个回调函数,用于在文件上传之前进行一些操作,比如文件预览。 5. 在`before-upload`回调函数中,可以通过`file`参数获取到当前上传文件对象。你可以使用`FileReader`对象来读取文件内容,并将其显示在页面上。 下面是一个示例代码: ```html <template> <el-upload class="upload-demo" action="/your-upload-api" :show-file-list="false" :before-upload="handleBeforeUpload" :on-success="handleSuccess" > <el-button size="small" type="primary">点击上传</el-button> </el-upload> </template> <script> export default { methods: { handleBeforeUpload(file) { // 使用FileReader读取文件内容并显示预览 const reader = new FileReader(); reader.onload = (e) => { // 在页面上显示文件预览 const preview = document.createElement('img'); preview.src = e.target.result; document.body.appendChild(preview); }; reader.readAsDataURL(file); // 返回false以阻止文件上传 return false; }, handleSuccess(response) { // 文件上传成功后的处理逻辑 console.log('文件上传成功', response); }, }, }; </script> ``` 这样,当用户选择文件后,会触发`before-upload`回调函数,你可以在该函数中读取文件内容并显示预览。然后,文件会被阻止上传,直到你处理完预览逻辑后再手动触发文件上传。 希望以上信息对你有帮助!
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值