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 uaMatch源代码
Feb 14 Javascript
JS跨域问题详解
Nov 25 Javascript
浅析JavaScript动画
Jun 10 Javascript
js中flexible.js实现淘宝弹性布局方案
Jun 23 Javascript
深入理解setTimeout函数和setInterval函数
May 20 Javascript
全面了解JavaScirpt 的垃圾(garbage collection)回收机制
Jul 11 Javascript
JQuery动态添加Select的Option元素实现方法
Aug 29 Javascript
微信小程序 富文本转文本实例详解
Oct 24 Javascript
JQ中$(window).load和$(document).ready区别与执行顺序
Mar 01 Javascript
详解webpack分包及异步加载套路
Jun 29 Javascript
基于bootstrap实现多个下拉框同时搜索功能
Jul 19 Javascript
微信小程序实现的涂鸦功能示例【附源码下载】
Jan 12 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 和 HTML
2006/10/09 PHP
十天学会php之第三天
2006/10/09 PHP
php结合表单实现一些简单功能的例子
2011/06/04 PHP
PHP 登录完成后如何跳转上一访问页面
2014/01/14 PHP
PHP编程实现计算抽奖概率算法完整实例
2017/08/09 PHP
Laravel 类和接口注入相关的代码
2019/10/15 PHP
对象特征检测法判断浏览器对javascript对象的支持
2009/07/25 Javascript
js鼠标点击事件在各个浏览器中的写法及Event对象属性介绍
2013/01/24 Javascript
Jquery选择器中使用变量实现动态选择例子
2014/07/25 Javascript
javascript实现数组内值索引随机化及创建随机数组的方法
2015/08/10 Javascript
jquery实现多条件筛选特效代码分享
2015/08/28 Javascript
使用jQuery给input标签设置默认值
2016/06/20 Javascript
浅谈Node.js轻量级Web框架Express4.x使用指南
2017/05/03 Javascript
微信小程序云开发如何实现数据库自动备份实现
2019/08/16 Javascript
在vue中使用vuex,修改state的值示例
2019/11/08 Javascript
在nuxt中使用路由重定向的实例
2020/11/06 Javascript
详解Python中time()方法的使用的教程
2015/05/22 Python
python特性语法之遍历、公共方法、引用
2018/08/08 Python
Python实现通过解析域名获取ip地址的方法分析
2019/05/17 Python
python实现小程序推送页面收录脚本
2020/04/20 Python
Python爬虫实现百度翻译功能过程详解
2020/05/29 Python
python 解决selenium 中的 .clear()方法失效问题
2020/09/01 Python
Python+OpenCV图像处理——实现直线检测
2020/10/23 Python
波兰在线儿童和婴儿用品零售商:pinkorblue
2019/06/29 全球购物
英国运动风奢侈品购物网站:Maison De Fashion
2020/08/28 全球购物
请写出 BOOL flag 与"零值"比较的 if 语句
2016/02/29 面试题
linux面试题参考答案(7)
2012/10/29 面试题
学校食堂采购员岗位职责
2013/12/05 职场文书
教师现实表现材料
2014/02/14 职场文书
毕业生求职信
2014/06/10 职场文书
新闻专业毕业生求职信
2014/08/08 职场文书
出国签证在职证明
2014/09/20 职场文书
傅雷家书读书笔记
2015/06/29 职场文书
学校食堂管理制度
2015/08/04 职场文书
Win10防火墙白名单怎么设置?Win10添加防火墙白名单方法
2022/04/06 数码科技
微软团队与 NASA 科学家和惠普企业(HPE)的工程师合作
2022/04/21 数码科技