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 相关文章推荐
如何动态的导入js文件具体该怎么实现
Jan 14 Javascript
jquery的clone方法应用于textarea和select的bug修复
Jun 26 Javascript
AngualrJS中每次$http请求时的一个遮罩层Directive
Jan 26 Javascript
Bootstrap自定义文件上传下载样式
May 26 Javascript
jQuery实现带延时功能的水平多级菜单效果【附demo源码下载】
Sep 21 Javascript
javascript垃圾收集机制的原理分析
Dec 08 Javascript
jQuery基于Ajax方式提交表单功能示例
Feb 10 Javascript
Vue form 表单提交+ajax异步请求+分页效果
Apr 22 Javascript
vue设计一个倒计时秒杀的组件详解
Apr 06 Javascript
VsCode与Node.js知识点详解
Sep 05 Javascript
javascript实现移动端触屏拖拽功能
Jul 29 Javascript
vue v-for 点击当前行,获取当前行数据及event当前事件对象的操作
Sep 10 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
PHP中使用mktime获取时间戳的一个黑色幽默分析
2012/05/31 PHP
thinkphp的静态缓存用法分析
2014/11/29 PHP
简单介绍win7下搭建apache+php+mysql开发环境
2015/08/06 PHP
驱动事件的addEvent.js代码
2007/03/27 Javascript
Jquery post传递数组方法实现思路及代码
2013/04/28 Javascript
jquery中加载图片自适应大小主要实现代码
2013/08/23 Javascript
JavaScript中number转换成string介绍
2014/12/31 Javascript
动态加载jQuery的方法
2015/06/16 Javascript
基于JavaScript Array数组方法(新手必看篇)
2016/08/20 Javascript
关于List.ToArray()方法的效率测试
2016/09/30 Javascript
jQuery点击弹出层弹出模态框点击模态框消失代码分享
2017/01/21 Javascript
扩展bootstrap的modal模态框-动态添加modal框-弹出多个modal框
2017/02/21 Javascript
AngularJS自定义指令实现面包屑功能完整实例
2017/05/17 Javascript
详解vue嵌套路由-query传递参数
2017/05/23 Javascript
JS获取填报扩展单元格控件的值的解决办法
2017/07/14 Javascript
原生js中ajax访问的实例详解
2017/09/19 Javascript
JavaScript基础心法 深浅拷贝(浅拷贝和深拷贝)
2018/03/05 Javascript
JS跨域请求的问题解析
2018/12/03 Javascript
JavaScript canvas绘制折线图
2020/02/18 Javascript
微信小程序scroll-view的滚动条设置实现
2020/03/02 Javascript
[01:14]DOTA2亚洲邀请赛 ShowOpen
2015/02/07 DOTA
[01:03:09]完美世界DOTA2联赛PWL S2 Forest vs SZ 第二场 11.25
2020/11/26 DOTA
使用python进行拆分大文件的方法
2018/12/10 Python
django处理select下拉表单实例(从model到前端到post到form)
2020/03/13 Python
用python给csv里的数据排序的具体代码
2020/07/17 Python
python 获取计算机的网卡信息
2021/02/18 Python
阿拉伯世界最大的电子商务网站:Souq沙特阿拉伯
2016/10/28 全球购物
Manuka Doctor英国官网:真正的麦卢卡蜂蜜和护肤品
2018/10/26 全球购物
匡威英国官网:Converse英国
2018/12/02 全球购物
一些Unix笔试题和面试题
2012/09/25 面试题
求职信需要的五点内容
2014/02/01 职场文书
青年文明号口号
2014/06/17 职场文书
森马旗舰店双十一营销方案
2014/09/29 职场文书
民政局标准版离婚协议书
2014/12/01 职场文书
2019假期福利管理制度!
2019/07/15 职场文书
详细谈谈MYSQL中的COLLATE是什么
2021/06/11 MySQL