当时有一个需求 是需要用到上传文件这个功能,并且需要将文件转为 base64 给到后台。网上找的全是啥图片转base64 肯定是因为这类需求比较常见。当时有点懵了。后面一想,都他娘是文件啊。然后就找到百度 Ctrl + C  -->  Ctrl +V

这里需要注意一点一定要做文件大小限定,如果文件太大转成base64还他娘的更大了,要注意 要注意

再说一下哦,既然是需要转 base64 那应该是不需要上传到服务器,前端自己本地转好 传后台 。文档中 说 action 为必填 解决方案如下

  1. <el-upload
  2. class="avatar-uploader"
  3. action="#"
  4. :show-file-list="false"
  5. :http-request="httpRequest"
    >
  6. <el-input v-model.trim="item.secretKeyFileName" readonly></el-input>
  7. <el-button type="primary" @click="getFile(index)">选取文件</el-button>
  8. <div slot="tip" class="el-upload__tip">文件上传限制说明</div>
  9. </el-upload>

action 参数 给它 #

咱自己定义一个 http-request   官网定义是:覆盖默认的上传行为,可以自定义上传的实现

现在撸转 base 64

主要是用到H5 方法中的 fileReader api。但是这个api不能return。那就promise一下吧

  1. //这个file参数 也就是文件信息,你使用 插件 时 你就可以打印出文件信息 看看嘛
    getBase64(file) {
  2. return new Promise((resolve, reject) => {
  3. let reader = new FileReader();
  4. let fileResult = "";
  5. reader.readAsDataURL(file);
         //开始转
  6. reader.onload = function() {
  7. fileResult = reader.result;
  8. };
         //转 失败
  9. reader.onerror = function(error) {
  10. reject(error);
  11. };
         //转 结束 咱就 resolve 出去
  12. reader.onloadend = function() {
  13. resolve(fileResult);
  14. };
  15. });
  16. }

这里 就说说 刚刚 我们自定义 的上传

  1. httpRequest(data){  // 没事儿就打印data看看呗
        //这是限制上传文件类型
  2. const isPFX = data.file.type === "application/x-pkcs12";
  3. const isLt2M = data.file.size / 1024 / 1024 < 2;
  4.  
  5. if (!isPFX) {
  6. this.$message.error("上传文件只能是 PFX 格式!");
  7. }else if (!isLt2M) {
  8. this.$message.error("上传文件大小不能超过 2MB!");
  9. }else{
  10. // 转base64
  11. this.getBase64(data.file).then(resBase64 => {
  12. this.fileBase64 = resBase64.split(',')[1]  //直接拿到base64信息
  13. console.log(resBase64.split(',')[1])
  14. })
  15. this.$message.success('文件上传成功');
  16. }

vue + element 文件上传 并将文件转 base64的更多相关文章

  1. 强大的支持多文件上传的jQuery文件上传插件Uploadify

    支持多文件上传的jQuery文件上传插件Uploadify,目前此插件有两种版本即Flash版本和HTML5版本,对于HTML5版本会比较好的支持手机浏览器,避免苹果手机Safari浏览器不支持Fla ...

  2. struts文件上传(多文件)

    第01步:配置web.xml <?xml version="1.0" encoding="UTF-8"?> <web-app version= ...

  3. skymvc文件上传支持多文件上传

    skymvc文件上传支持多文件上传 支持单文件.多文件上传 可以设定 文件大小.存储目录.文件类型 //上传的文件目录 $this->upload->uploaddir="att ...

  4. SpringMVC单文件上传、多文件上传、文件列表显示、文件下载(转)

    林炳文Evankaka原创作品.转载请注明出处http://blog.csdn.net/evankaka 本文详细讲解了SpringMVC实例单文件上传.多文件上传.文件列表显示.文件下载. 本文工程 ...

  5. yii2.0单文件上传和多文件上传

    yii2文件上传使用到yii2自带的文件上传类UploadFIle,以及对应的模型规则,这里分别介绍单文件上传和多文件上传: yii2单个文件上传: 上传步奏,先创建上传表单模型model(包含验证规 ...

  6. 使用PHP实现文件上传和多文件上传

    PHP 2013 年 9 月 4 日 暂无评论 在PHP程序开发中,文件上传是一个使用非常普遍的功能,也是PHP程序员的必备技能之一.值得高兴的是,在PHP中实现文件上传功能要比在Java.C#等语言 ...

  7. Struts1文件上传、单文件、多文件上传【Struts1】

     将struts1文件上传的操作汇总了一下,包括单文件上传和多文件上传,内容如下,留作备忘: Struts2实现文件上传的文章(http://blog.csdn.net/itwit/article/d ...

  8. (29)Spring boot 文件上传(多文件上传)【从零开始学Spring Boot】

    文件上传主要分以下几个步骤: (1)新建maven java project: (2)在pom.xml加入相应依赖: (3)新建一个表单页面(这里使用thymleaf); (4)编写controlle ...

  9. SpringMVC文件上传下载(单文件、多文件)

    前言 大家好,我是bigsai,今天我们学习Springmvc的文件上传下载. 文件上传和下载是互联网web应用非常重要的组成部分,它是信息交互传输的重要渠道之一.你可能经常在网页上传下载文件,你可能 ...

随机推荐

  1. Python学习笔记之unittest测试类

    11-3 雇员:编写一个名为Employee 的类,其方法__init__()接受名.姓和年薪,并将它们都存储在属性中.编写一个名为give_raise()的方法,它默认将年薪增加5000美元,但也能 ...

  2. mac下chm文件打开乱码解决

    菜单栏点击---显示---文本编码(选择编码格式)

  3. RT-Thread点亮led

    下载默认工程 https://www.rt-thread.org/ 配置rtconfig.h #define STM32F103RE //修改成自己的板子 #define RT_HSE_VALUE 8 ...

  4. idea基本使用

    1.java项目导jar包 File->Project Structure->Modules->Dependencies->+ 2. 鼠标放在方法上一段时间后,显示该方法的注释 ...

  5. Java基础回顾一

    1.JDK和JRE的区别: JDK:java开发工具包,提供java的开发环境和运行环境 JRE:java运行环境,为java的运行提供所需要的环境 2. ==和qruals的区别: == 基本类型: ...

  6. 模板渲染 templates

    目录 一.模板含义 二.模板的组成 三.逻辑控制代码 变量 标签 自定义过滤器 模板继承 一.模板含义 模板虽然是HTML文件,但是Django不是直接把HTML文件返回给用户,而是经过了 模板语言的 ...

  7. Docker--部署mongodb+.netcore+nginx

    前言 公司租用的阿里云的服务器,每年会更换一次,很麻烦,还容易出问题,想会不会有更方便的方式来迁移服务器,就这样接触到了docker. 参考网上的一些资料,自己琢磨了一段时间,记录下docker的部署 ...

  8. React 受控组件和非受控组件

    需求用户名自动获取 onChange用户状态发生改变 就获取值 就是时时获取值 使用onChange 点击按钮 获取密码 只要绑定了点击事件 就可以获取值 通过 let usercont=event. ...

  9. JS高阶---闭包缺点(内存溢出与泄露)

    [大纲] [主体] (1)闭包优缺点 .延长局部变量的生命周期2.外部访问函数内部变量 闭包的优点同时也是它的缺点,就是 (2)解决方案 .能不用闭包就不用(很难做到,因为应用较多) .及时释放--- ...

  10. c# 第17节 二维数组声明、使用

    本节内容: 1:为什么要有二维数组 2:二维数据 3:实例二维数组声明 4:二维数组的使用 1:为什么要有二维数组 2:二维数据声明 3:实例二维数组声明 4:二维数组的使用 foreach遍历 5: ...