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 相关文章推荐
捕获关闭窗口的脚本
Jan 10 Javascript
百度留言本js 大家可以参考下
Oct 13 Javascript
jQuery EasyUI API 中文文档 DateTimeBox日期时间框
Oct 16 Javascript
javascript跑马灯悬停放大效果实现代码
Dec 12 Javascript
js返回上一页并刷新代码整理
Dec 21 Javascript
Js使用WScript.Shell对象执行.bat文件和cmd命令
Dec 18 Javascript
浅析如何利用angular结合translate为项目实现国际化
Dec 08 Javascript
Javascript实现一个简单的输入关键字添加标签效果实例
Jun 01 Javascript
小程序rich-text组件如何改变内部img图片样式的方法
May 22 Javascript
微信小程序表单验证插件WxValidate的二次封装功能(终极版)
Sep 03 Javascript
前端 javascript 实现文件下载的示例
Nov 24 Javascript
javascript实现用户必须勾选协议实例讲解
Mar 24 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 checkbox 取值详细说明
2010/08/19 PHP
PHP获取毫秒级时间戳的方法
2015/04/15 PHP
PHP实现动态压缩js与css文件的方法
2018/05/02 PHP
Laravel 集成 Geetest验证码的方法
2018/05/14 PHP
jquery ajax提交表单数据的两种方式
2009/11/24 Javascript
JavaScript中的console.assert()函数介绍
2014/12/29 Javascript
JS获取图片lowsrc属性的方法
2015/04/01 Javascript
jquery简单实现带渐显效果的选项卡菜单代码
2015/09/01 Javascript
Angular2学习笔记——详解NgModule模块
2016/12/02 Javascript
jquery ajax异步提交表单数据的方法
2017/10/27 jQuery
JS对象和字符串之间互换操作实例分析
2019/02/02 Javascript
Vue安装浏览器开发工具的步骤详解
2019/05/12 Javascript
python 中的列表解析和生成表达式
2011/03/10 Python
在Python中进行自动化单元测试的教程
2015/04/15 Python
python 中split 和 strip的实例详解
2017/07/12 Python
python实现输入任意一个大写字母生成金字塔的示例
2019/10/27 Python
python中的数组赋值与拷贝的区别详解
2019/11/26 Python
基于pytorch的lstm参数使用详解
2020/01/14 Python
python中resample函数实现重采样和降采样代码
2020/02/25 Python
python中scrapy处理项目数据的实例分析
2020/11/22 Python
Python更改pip镜像源的方法示例
2020/12/01 Python
详解HTML5通讯录获取指定多个人的信息
2016/12/20 HTML / CSS
HTML5在线预览PDF的示例代码
2017/09/14 HTML / CSS
乌克兰机票、铁路和巴士票、酒店搜索、保险:Tickets.ua
2020/01/11 全球购物
社区十八大感言
2014/01/19 职场文书
渔夫的故事教学反思
2014/02/14 职场文书
党员领导干部廉洁从政承诺书
2014/03/27 职场文书
诉讼财产保全担保书
2014/05/20 职场文书
小学生我的梦想演讲稿
2014/08/21 职场文书
2015年试用期工作总结
2014/12/12 职场文书
2014年小学辅导员工作总结
2014/12/23 职场文书
民事辩护词范文
2015/05/21 职场文书
升学宴学生致辞
2015/09/29 职场文书
win11无线投屏在哪设置? win11无线投屏功能的使用方法
2022/04/08 数码科技
java实现面板之间切换功能
2022/06/10 Java/Android
Redis实现主从复制方式(Master&Slave)
2022/06/21 Redis