vue + element 文件上传 并将文件转 base64
当时有一个需求 是需要用到上传文件这个功能,并且需要将文件转为 base64 给到后台。网上找的全是啥图片转base64 肯定是因为这类需求比较常见。当时有点懵了。后面一想,都他娘是文件啊。然后就找到百度 Ctrl + C --> Ctrl +V
这里需要注意一点一定要做文件大小限定,如果文件太大转成base64还他娘的更大了,要注意 要注意
再说一下哦,既然是需要转 base64 那应该是不需要上传到服务器,前端自己本地转好 传后台 。文档中 说 action 为必填 解决方案如下
<el-upload
class="avatar-uploader"
action="#"
:show-file-list="false"
:http-request="httpRequest"
>
<el-input v-model.trim="item.secretKeyFileName" readonly></el-input>
<el-button type="primary" @click="getFile(index)">选取文件</el-button>
<div slot="tip" class="el-upload__tip">文件上传限制说明</div>
</el-upload>
action 参数 给它 #
咱自己定义一个 http-request 官网定义是:覆盖默认的上传行为,可以自定义上传的实现
现在撸转 base 64
主要是用到H5 方法中的 fileReader api。但是这个api不能return。那就promise一下吧
//这个file参数 也就是文件信息,你使用 插件 时 你就可以打印出文件信息 看看嘛
getBase64(file) {
return new Promise((resolve, reject) => {
let reader = new FileReader();
let fileResult = "";
reader.readAsDataURL(file);
//开始转
reader.onload = function() {
fileResult = reader.result;
};
//转 失败
reader.onerror = function(error) {
reject(error);
};
//转 结束 咱就 resolve 出去
reader.onloadend = function() {
resolve(fileResult);
};
});
}
这里 就说说 刚刚 我们自定义 的上传
httpRequest(data){ // 没事儿就打印data看看呗
//这是限制上传文件类型
const isPFX = data.file.type === "application/x-pkcs12";
const isLt2M = data.file.size / 1024 / 1024 < 2;
if (!isPFX) {
this.$message.error("上传文件只能是 PFX 格式!");
}else if (!isLt2M) {
this.$message.error("上传文件大小不能超过 2MB!");
}else{
// 转base64
this.getBase64(data.file).then(resBase64 => {
this.fileBase64 = resBase64.split(',')[1] //直接拿到base64信息
console.log(resBase64.split(',')[1])
})
this.$message.success('文件上传成功');
}
vue + element 文件上传 并将文件转 base64的更多相关文章
- 强大的支持多文件上传的jQuery文件上传插件Uploadify
支持多文件上传的jQuery文件上传插件Uploadify,目前此插件有两种版本即Flash版本和HTML5版本,对于HTML5版本会比较好的支持手机浏览器,避免苹果手机Safari浏览器不支持Fla ...
- struts文件上传(多文件)
第01步:配置web.xml <?xml version="1.0" encoding="UTF-8"?> <web-app version= ...
- skymvc文件上传支持多文件上传
skymvc文件上传支持多文件上传 支持单文件.多文件上传 可以设定 文件大小.存储目录.文件类型 //上传的文件目录 $this->upload->uploaddir="att ...
- SpringMVC单文件上传、多文件上传、文件列表显示、文件下载(转)
林炳文Evankaka原创作品.转载请注明出处http://blog.csdn.net/evankaka 本文详细讲解了SpringMVC实例单文件上传.多文件上传.文件列表显示.文件下载. 本文工程 ...
- yii2.0单文件上传和多文件上传
yii2文件上传使用到yii2自带的文件上传类UploadFIle,以及对应的模型规则,这里分别介绍单文件上传和多文件上传: yii2单个文件上传: 上传步奏,先创建上传表单模型model(包含验证规 ...
- 使用PHP实现文件上传和多文件上传
PHP 2013 年 9 月 4 日 暂无评论 在PHP程序开发中,文件上传是一个使用非常普遍的功能,也是PHP程序员的必备技能之一.值得高兴的是,在PHP中实现文件上传功能要比在Java.C#等语言 ...
- Struts1文件上传、单文件、多文件上传【Struts1】
将struts1文件上传的操作汇总了一下,包括单文件上传和多文件上传,内容如下,留作备忘: Struts2实现文件上传的文章(http://blog.csdn.net/itwit/article/d ...
- (29)Spring boot 文件上传(多文件上传)【从零开始学Spring Boot】
文件上传主要分以下几个步骤: (1)新建maven java project: (2)在pom.xml加入相应依赖: (3)新建一个表单页面(这里使用thymleaf); (4)编写controlle ...
- SpringMVC文件上传下载(单文件、多文件)
前言 大家好,我是bigsai,今天我们学习Springmvc的文件上传下载. 文件上传和下载是互联网web应用非常重要的组成部分,它是信息交互传输的重要渠道之一.你可能经常在网页上传下载文件,你可能 ...
随机推荐
- Attract队作品简介
湖南师范大学 Attract队 荣获“航天宏图杯”PIE遥感图像处理软件二次开发大赛二等奖 作品名称:基于深度学习的遥感影像分类系统-以长沙市居住区分类为例 团队简介:周亮(指导老师).张慧(组长) ...
- JavaScript 字符串(String) 大全
JavaScript字符串存储一系列字符,如“John Doe”.字符串可以是双引号或单引号内的任何文本: <!DOCTYPE html> <html> <meta ch ...
- OC-加载h5富文本的代码,并计算高度
参考文章: 加载富文本的h5代码:https://zhidao.baidu.com/question/1510839173546014340.html 计算富文本的高度:https://zhidao. ...
- X264-视频压缩编码VCL
在前面的过程中,我们得到了编码图像,编码器开始H264视频编码VCL.首先初始化有关参数,包括帧类型的获取.创建多参考帧的列表.初始化码流控制.初始化写码流结构和写SPS.PPS头结构信息. 1.初始 ...
- Java并行程序基础。
并发,就是用多个执行器(线程)来完成一个任务(大任务)来处理业务(提高效率)的方法.而在这个过程中,会涉及到一些问题,所以学的就是解决这些问题的方法. 线程的基本操作: 1.创建线程:只需要new一个 ...
- Properties类按顺序输出加载内容
Properties类按顺序输出加载内容 最近手写工厂的时候,遇到了加载配置文件时不按照properties文件中的数据的顺序来加载. 一.问题代码 import java.io.IOExceptio ...
- Python从零开始——函数
一:Python函数知识概览 二:函数的定义与调用 三:参数传递 四:函数返回值 五:匿名函数的定义与调用 六:变量作用域与改变变量作用域
- 解析YAML文件
YamlMapFactoryBean yamlMapFactoryBean = new YamlMapFactoryBean(); yamlMapFactoryBean.setResources(ne ...
- 201871010101-陈来弟《面向对象程序设计(java)》第十六周学习总结
实验十四 应用程序归档与线程初步 实验时间 2019-12-12 第一部分:基础知识 1. 程序与进程: 进程是指一个具有一定独立功能的程序关于某个数据集合的一次运行活动.电脑中时会有很多单独运行的 ...
- MySQL 5.5/5.6/5.7及以上版本安装包安装时如何选择安装路径
安装环境需求: 自从昨天安装了mysql 5.7,发现了一个问题,mysql5.6起,已经不支持2003系统了,如果安装了无法开启服务而且会出现在 本地计算机 无法启动 MySQL57 服务.错误 1 ...