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应用非常重要的组成部分,它是信息交互传输的重要渠道之一.你可能经常在网页上传下载文件,你可能 ...
随机推荐
- WEBAPI获取数据
在大学学期期间学习的从mvc中的webapi中取数据 直接看代码 首先是控制器中的 using System; using System.Collections.Generic; using Syst ...
- es6中find方法
find() 方法返回数组中满足提供的测试函数的第一个元素的值.否则返回 undefined. , , , , ]; var found = array1.find(function(element) ...
- Python3的sorted
排序算法 排序也是在程序中经常用到的算法.无论使用冒泡排序还是快速排序,排序的核心是比较两个元素的大小.如果是数字,我们可以直接比较,但如果是字符串或者两个dict呢?直接比较数学上的大小是没有意义的 ...
- curl sftp libcurl 功能使用
#include <curl/curl.h> #undef DISABLE_SSH_AGENT struct FtpFile { const char *filename; FILE *s ...
- Gradle 创建java程序详细步骤
Java构建工具三强: Ant, Maven, GradleAnt历史悠久, 用build.xml 描述, 当时他的xml着实让很多工程师头痛, 但仍有用武之地. Maven 用pom.xml 文件描 ...
- weblogic删除域
彻底删除weblogic域的方法: 例如:删除域名为:fm_ump的域 第一步,删除域注册记录: [bofm@UAT02-BIZ-ZJCG-AP-008 Middleware]$ cd /home/s ...
- HLAPI
和SPS硬件交互的API
- 分分钟搞定Redis编译安装
1. 依赖包安装 yum -y install cpp binutils glibc glibc-kernheaders glibc-common glibc-devel gcc make gcc- ...
- kolla部署openstack allinone,报错 ImportError: cannot import name decorate
使用 kolla-ansible 部署 opnenstack:stein,最后无法导入变量脚本,报错信息如下: [root@kolla ~]# . /etc/kolla/admin-openrc.sh ...
- SQLAlchemy(3)
一. SQLAlchemy 介绍 SQLAlchemy是一个基于Python实现的ORM框架.该框架建立在 DB API之上,使用关系对象映射进行数据库操作,简言之便是:将类和对象转换成SQL,然后使 ...