vue实现文件上传读取及下载功能


Posted in Javascript onNovember 17, 2020

本文实例为大家分享了vue实现文件上传读取及下载的具体代码,供大家参考,具体内容如下

文件的上传利用input标签的type="file"属性,读取用FileReader对象,下载通过创建a标签实现

<template>
 <div class="filediv">
 <el-button @click="downloadFile">下载</el-button>
 <div id="fileselect">
 <el-input style="margin-top: 16px" type="file"></el-input>
 </div>
 </div>
</template>
 
<script>
export default {
 data () {
 return {
 }
 },
 mounted: function () {
 this.$nextTick(function () {
 this.readFile()
 })
 },
 methods: {
 // 下载文件
 downloadFile: function () {
 var content = [
 { 'firstName': 'John', 'lastName': 'Doe' },
 { 'firstName': 'Anna', 'lastName': 'Smith' },
 { 'firstName': 'Peter', 'lastName': 'Jones' }
 ]
 var filecontent = JSON.stringify(content)
 if ('download' in document.createElement('a')) {
 this.download(filecontent, 'testfile.json')
 } else {
 alert('浏览器不支持')
 }
 },
 // 下载设备配置文件
 download: function (content, filename) {
 let link = document.createElement('a')
 link.download = filename
 link.style.display = 'none'
 // 字符内容转变成blob地址
 let blob = new Blob([content])
 link.href = URL.createObjectURL(blob)
 document.body.appendChild(link)
 link.click()
 document.body.removeChild(link)
 },
 // 导入设备,监听上传文件并读取
 readFile: function () {
 console.log('读取文件')
 let fileselect = document.querySelector('#fileselect')
 fileselect.addEventListener('change', function (e) {
 console.log(e)
 let file = e.target.files
 console.log('文件类型')
 console.log(file)
 if (file.length === 0) {
  return
 }
 let reader = new FileReader()
 if (typeof FileReader === 'undefined') {
  this.$message({
  type: 'info',
  message: '您的浏览器不支持FileReader接口'
  })
  return
 }
 reader.readAsText(file[0])
 reader.onload = function (e) {
  console.log('文件内容')
  console.log(e.target.result)
 }
 }.bind(this))
 }
 }
}
</script>
 
<style scoped>
.filediv {
 width: 400px;
 margin: 20px;
}
</style>

关于vue.js的学习教程,请大家点击专题vue.js组件学习教程、Vue.js前端组件学习教程进行学习。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
Extjs中通过Tree加载右侧TabPanel具体实现
May 05 Javascript
JS删除字符串中重复字符方法
Mar 09 Javascript
JavaScript使用Replace进行字符串替换的方法
Apr 14 Javascript
基于jquery实现在线选座订座之影院篇
Aug 24 Javascript
动态加载js文件简单示例
Apr 21 Javascript
JS小数转换为整数的方法分析
Jan 07 Javascript
AngularJS的$location使用方法详解
Oct 19 Javascript
元素全屏的设置与监听实例
Nov 28 Javascript
jQuery实现的电子时钟效果完整示例
Apr 28 jQuery
详解vue-cli下ESlint 配置说明
Sep 03 Javascript
Vue 实现简易多行滚动&quot;弹幕&quot;效果
Jan 02 Javascript
JavaScript中的几种继承方法示例
Dec 06 Javascript
layer弹出框确定前验证:弹出消息框的方法(弹出两个layer)
Sep 21 #Javascript
vue配置nprogress实现页面顶部进度条
Sep 21 #Javascript
Vue使用NProgress进度条的方法
Sep 21 #Javascript
NProgress显示顶部进度条效果及使用详解
Sep 21 #Javascript
vue开发拖拽进度条滑动组件
Sep 21 #Javascript
layui点击弹框页面 表单请求的方法
Sep 21 #Javascript
使用vue制作滑动标签
Sep 21 #Javascript
You might like
PHPMailer安装方法及简单实例
2008/11/25 PHP
ThinkPHP实现事务回滚示例代码
2014/06/23 PHP
JavaScript创建命名空间的5种写法
2014/06/24 PHP
PHP图像处理之imagecreate、imagedestroy函数介绍
2014/11/19 PHP
phpmailer绑定邮箱的实现方法
2016/12/01 PHP
PHP未登录自动跳转到登录页面
2016/12/21 PHP
Yii框架弹出框功能示例
2017/01/07 PHP
基于PHP+Mysql简单实现了图书购物车系统的实例详解
2020/08/06 PHP
去掉gridPanel表头全选框的小例子
2013/07/18 Javascript
js判读浏览器是否支持html5的canvas的代码
2013/11/18 Javascript
用JS在浏览器中创建下载文件
2014/03/05 Javascript
JavaScript实现Java中StringBuffer的方法
2015/02/09 Javascript
jQuery实现大转盘抽奖活动仿QQ音乐代码分享
2015/08/21 Javascript
JS实现把鼠标放到链接上出现滚动文字的方法
2016/04/06 Javascript
使用vue.js2.0 + ElementUI开发后台管理系统详细教程(二)
2017/01/21 Javascript
angularJS+requireJS实现controller及directive的按需加载示例
2017/02/20 Javascript
Javascript ES6中数据类型Symbol的使用详解
2017/05/02 Javascript
Angular 4依赖注入学习教程之ValueProvider的使用(七)
2017/06/04 Javascript
javascript中神奇的 Date对象小结
2017/10/12 Javascript
详解用Node.js写一个简单的命令行工具
2018/03/01 Javascript
详解js模板引擎art template数组渲染的方法
2018/10/09 Javascript
vue 点击展开显示更多(点击收起部分隐藏)
2019/04/09 Javascript
vue+vant实现商品列表批量倒计时功能
2020/01/13 Javascript
详解vue中在循环中使用@mouseenter 和 @mouseleave事件闪烁问题解决方法
2020/04/07 Javascript
浅谈Vue使用Elementui修改默认的最快方法
2020/12/05 Vue.js
python基础练习之几个简单的游戏
2017/11/10 Python
对Python 3.2 迭代器的next函数实例讲解
2018/10/18 Python
Python实现字典按key或者value进行排序操作示例【sorted】
2019/05/03 Python
pycharm工具连接mysql数据库失败问题
2020/04/01 Python
Python3.8.2安装包及安装教程图文详解(附安装包)
2020/11/28 Python
巴西电子、家电、智能手机购物网站:Girafa
2019/06/04 全球购物
妇科医生自荐信
2013/11/05 职场文书
主持人婚宴答谢词
2014/01/28 职场文书
如何写自我评价?自我评价写什么好?
2014/03/14 职场文书
工地标语大全
2014/06/18 职场文书
乡镇机关党员民主评议表自我评价
2014/09/21 职场文书