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 相关文章推荐
JavaScript栏目列表隐藏/显示简单实现
Apr 03 Javascript
javascript获取选中的文本的方法代码
Oct 30 Javascript
JS操作XML实例总结(加载与解析XML文件、字符串)
Dec 08 Javascript
jQuery实现TAB选项卡切换特效简单演示
Mar 04 Javascript
AngularJS中的包含详细介绍及实现示例
Jul 28 Javascript
JS刷新父窗口的几种方式小结(推荐)
Nov 09 Javascript
使用Webpack提高Vue.js应用的方式汇总(四种)
Jul 10 Javascript
npm 更改默认全局路径以及国内镜像的方法
May 16 Javascript
区别JavaScript函数声明与变量声明
Sep 12 Javascript
JavaScript实现旋转木马轮播图
Mar 16 Javascript
jQuery实现回到顶部效果
Oct 19 jQuery
vue使用element-ui按需引入
May 20 Vue.js
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作的文本留言本的例子(四)
2006/10/09 PHP
smarty静态实验表明,网络上是错的~呵呵
2006/11/25 PHP
CakePHP去除默认显示的标题及图标的方法
2008/10/22 PHP
laravel 5 实现模板主题功能(续)
2015/03/02 PHP
php判断linux下程序问题实例
2015/07/09 PHP
ThinkPHP3.2框架自定义配置和加载用法示例
2018/06/14 PHP
JavaScript参数个数可变的函数举例说明
2014/10/10 Javascript
js代码验证手机号码和电话号码是否合法
2015/07/30 Javascript
jQuery代码实现发展历程时间轴特效
2015/07/30 Javascript
javascript字符串对象常用api函数小结(连接,替换,分割,转换等)
2016/09/20 Javascript
微信小程序 简单DEMO布局,逻辑,样式的练习
2016/11/30 Javascript
JavaScript实现瀑布流图片效果
2017/06/30 Javascript
React Native实现地址挑选器功能
2017/10/24 Javascript
解决vue同一slot在组件中渲染多次的问题
2018/09/06 Javascript
vue微信分享出来的链接点开是首页问题的解决方法
2018/11/28 Javascript
js实现页面导航层级指示效果
2020/08/25 Javascript
vue 在单页面应用里使用二级套嵌路由
2020/12/19 Vue.js
[04:21]狐狸妈带你到现场 DOTA2 TI中国区预选赛线下赛路线指引
2014/05/22 DOTA
[45:32]Liquid vs LGD 2018国际邀请赛淘汰赛BO3 第二场 8.23
2018/08/24 DOTA
python做量化投资系列之比特币初始配置
2018/01/23 Python
对python多线程与global变量详解
2018/11/09 Python
Jupyter notebook在mac:linux上的配置和远程访问的方法
2019/01/14 Python
解决python线程卡死的问题
2019/02/18 Python
利用Python实现Excel的文件间的数据匹配功能
2020/06/16 Python
在keras中实现查看其训练loss值
2020/06/16 Python
美国木工工具和用品商店:Woodcraft
2019/10/30 全球购物
考试不及格检讨书
2014/01/09 职场文书
师范教师毕业鉴定
2014/01/13 职场文书
3分钟英语演讲稿
2014/04/29 职场文书
厉行勤俭节约倡议书
2014/05/16 职场文书
党的群众路线教育实践活动党员个人整改措施
2014/10/27 职场文书
大专护理专业自荐信
2015/03/25 职场文书
2015年安全月活动总结
2015/03/26 职场文书
十八大观后感
2015/06/12 职场文书
个人的事迹材料怎么写
2019/04/24 职场文书
《勇者辞职不干了》上卷BD发售宣传CM公开
2022/04/08 日漫