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 相关文章推荐
jQuery 菜单随滚条改为以定位方式(固定要浏览器顶部)
May 24 Javascript
使用javascript实现页面定时跳转总结篇
Sep 21 Javascript
JS实现点击图片在当前页面放大并可关闭的漂亮效果
Oct 18 Javascript
javascript实现iframe框架延时加载的方法
Oct 30 Javascript
浅谈Javascript中匀速运动的停止条件
Dec 19 Javascript
javascript实现字符串反转的方法
Feb 05 Javascript
基于jQuery实现以手风琴方式展开和折叠导航菜单
Jan 28 Javascript
Bootstrap布局方式详解
May 27 Javascript
jquery 获取select数组与name数组长度的实现代码
Jun 20 Javascript
使用JS正则表达式 替换括号,尖括号等
Nov 29 Javascript
JS传参及动态修改页面布局
Apr 13 Javascript
angularjs过滤器--filter与ng-repeat配合有奇效
Apr 20 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
在Mac OS上搭建PHP的Yii框架及相关测试环境
2016/02/14 PHP
javascript动画之圆形运动,环绕鼠标运动作小球
2010/07/20 Javascript
Javascript 检测键盘按键信息及键码值对应介绍
2013/01/03 Javascript
js对table的td进行相同内容合并示例详解
2013/12/27 Javascript
JavaScript SHA512&amp;SHA256加密算法详解
2015/08/11 Javascript
jQuery+json实现的简易Ajax调用实例
2015/12/14 Javascript
jQuery Easyui datagrid/treegrid 清空数据
2016/07/09 Javascript
jQuery+Pdo编写login登陆界面
2016/08/01 Javascript
JQuery学习总结【一】
2016/12/01 Javascript
浅谈JavaScript正则表达式-非捕获性分组
2017/03/08 Javascript
bootstrap日期插件daterangepicker使用详解
2017/10/19 Javascript
JS 中使用Promise 实现红绿灯实例代码(demo)
2017/10/20 Javascript
vue用递归组件写树形控件的实例代码
2018/07/19 Javascript
24个ES6方法解决JS实际开发问题(小结)
2020/05/31 Javascript
[46:40]VGJ.T vs Winstrike 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/20 DOTA
跟老齐学Python之一个免费的实验室
2014/09/14 Python
Python中操作文件之write()方法的使用教程
2015/05/25 Python
python处理大数字的方法
2015/05/27 Python
使用Nginx+uWsgi实现Python的Django框架站点动静分离
2016/03/21 Python
基于python内置函数与匿名函数详解
2018/01/09 Python
Ubuntu下使用Python实现游戏制作中的切分图片功能
2018/03/30 Python
Python数据分析库pandas基本操作方法
2018/04/08 Python
Python实现的逻辑回归算法示例【附测试csv文件下载】
2018/12/28 Python
python如何将多个PDF进行合并
2019/08/13 Python
FFT快速傅里叶变换的python实现过程解析
2019/10/21 Python
Django日志及中间件模块应用案例
2020/09/10 Python
CSS3实现超慢速移动动画效果非常流畅无卡顿
2014/06/15 HTML / CSS
使用Html5 Stream开发实时监控系统
2020/06/02 HTML / CSS
Kipling凯浦林美国官网:世界著名时尚休闲包袋品牌
2016/08/24 全球购物
美国美妆网站:B-Glowing
2016/10/12 全球购物
项目申报专员岗位职责
2014/07/09 职场文书
校车安全责任书
2014/08/25 职场文书
企业法人代表证明书
2014/09/27 职场文书
演讲稿:​快乐,从不抱怨开始!
2019/04/02 职场文书
大学生如何逃脱“毕业季创业队即散伙”魔咒?
2019/08/19 职场文书
Nginx 502 Bad Gateway错误原因及解决方案
2021/03/31 Servers