注意:后端返回的base64图片,有的没有code,可能会遭遇响应拦截器拦截,要去主动解除限制

request.js中

//数据处理错误接口}else if(res.code == 400){message({message: res.msg || '请求出错,请重试',type: 'error',duration: 1500        })return Promise.reject(new Error(res.msg || 'Error'))}else if (res.code !== 200) {//下载文件由于没有code所以可以直接通过if(url.indexOf('/excel')){return response}

1、第一种,base64图片先转成blob对象,然后将对象转为file

(1)从接口获取base64图片

// 获取下载文件链接
export function getDownloadUrl(type, fileName) {return request({url: `/api/file/Download/${type}/${fileName}`, //换成自己的接口method: 'get'})
}

(2)将base64转为blob对象

//base64转成blob export function dataURLtoFile(dataURI) {let binary = atob(dataURI.split(",")[1]);let array = [];for (let i = 0; i < binary.length; i++) {array.push(binary.charCodeAt(i));}return new Blob([new Uint8Array(array)], { type: 'image/png'});
}

(3)将blob对象转成file文件

//将blob转为file
export function uploadImg(fileData) {let formData = new FormData();let fileOfBlob = new File([fileData], new Date() + ".png"); // 命名图片名formData.append("file", fileOfBlob);return formData
}

2、直接将base64转为文件

//base64图片转成文件流格式
export function base64ToFile(data, fileName) {const dataArr = data.split(",");const byteString = atob(dataArr[1]);const options = {type: "image/jpeg",endings: "native"};const u8Arr = new Uint8Array(byteString.length);for (let i = 0; i < byteString.length; i++) {u8Arr[i] = byteString.charCodeAt(i);}let formData = new FormData();let fileOfBlob = new File([u8Arr], fileName + ".jpg", options);//返回文件流formData.append("file", fileOfBlob);return formData
}

3、如果文件需要上传(以file格式),则需要配置上传函数upload,注意headers要转码

//上㤔 图片
export function uploadFile({type,data}){return request({"url":`${define.uploadUrl}/${type}`,"method":"POST",    data,headers:{'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8'}})
}

4、使用时

import {base64ToFile,uploadFile} from "@/api/common.js";let data = base64ToFile(img,this.selectObj.id+"sign");
uploadFile({"type":"signImg","data":data
}).then(resp=>{})

base64图片转file的处理相关推荐

  1. base64图片转换file,并上传到阿里云

    第一步:创建base64util package com.yuantu.util; import org.springframework.util.Base64Utils;/*** @author A ...

  2. java将base64图片转为file上传到服务器

    首先后台先创建工具类 package org.adv.fw.modular.util;import java.io.ByteArrayInputStream; import java.io.File; ...

  3. 前端将base64图片转换成file文件

    1.base64转成file具体代码 // base64图片转file的方法(base64图片, 设置生成file的文件名)function base64ToFile(base64, fileName ...

  4. vue中调用摄像头拍照,并把拍照的base64格式转换为file传递后台

    需求: 在vue项目中使用摄像头拍摄照片传递,进行上传,如果上传成功可以获取到url链接,进行下一步的操作 内容梳理 1.首先进入页面打开摄像头 2.点击手动拍照进行拍摄照片,实时显示拍照效果 3.拿 ...

  5. img图片的预览和下载(iframe基本使用),图片转file格式,file文件转base64格式,base64的编码和解码

    目录 一.根据后端接口返回的URL下载和预览图片 1.调用下载图片函数实现下载图片 2.弹出另一个页面,实现预览图片. 3.不弹出另一个页面,实现下载/预览图片(iframe方式) 4.动态创建ifr ...

  6. 在PHP里使用 ImageMagick 生成 base64 图片

    个人博客 duanruilong.github.io/blog/ 本文原地址duanruilong.github.io/blog/2018/0- 最近的PHP项目中,需要用到画图和图片拼接效果,这里是 ...

  7. java image to base64_Java实现base64图片编码数据转换为本地图片的方法

    本文实例讲述了Java实现base64图片编码数据转换为本地图片的方法.分享给大家供大家参考,具体如下: 项目中用到的把base64图片数据转为本地图片的函数 /** * 替换html中的base64 ...

  8. java后台保存base64图片数据

    java后台保存base64图片数据 使用byte[] bytes = new BASE64Decoder().decodeBuffer(str);需要引入sun.misc.BASE64Decoder ...

  9. java 微信开发图片发送,微信开发?Java上传Base64图片

    class="java">import org.apache.commons.codec.binary.Base64; import org.apache.log4j.Log ...

最新文章

  1. Educational Codeforces Round 45 (Rated for Div. 2) D Graph And Its Complement(图的构造)
  2. 数字签名与数字证书是什么
  3. python导入csv文件-python如何导入csv
  4. java list pair_JavaList
  5. k8s 更改pod数量限制(默认每个节点最多110组pod)0/3 nodes are available: 3 Insufficient cpu报错排查
  6. Ubuntu换源失败:Could not get lock /var/lib/apt/lists/lock - open
  7. 判断linux进程是否存在
  8. vue 根据字符串生成表单_vue 中怎么渲染字符串形式的组件标签?
  9. TTL怎么计算拉电流和灌电流_预付费电表工作原理 是怎么实现断电功能
  10. 关于UIScrollViewDelegate协议中每个回调函数的意义及执行
  11. 走进start_kernel尾声
  12. QQlook--QQ空间密码 相册密码查看工具 国庆版 V2.4
  13. 大学计算机类专业详解,多伦多大学计算机相关专业解析
  14. 互联网思维之迭代思维
  15. R语言学习| 马氏距离mahanobis函数
  16. 转换上课周次字符串(我带着困惑我一周之久的编程题来了)
  17. 数学方法生成六位随机数
  18. 对视频声音,音频进行音量标准化和响度均化,归一化的标准,原理以及具体操作
  19. linux php启动端口,linux中如何开放指定端口
  20. MEM/MBA数学强化(06)数列

热门文章

  1. 这样学Shader可以少走几年弯路,看完我信了……
  2. 使用Hadoop提取网络日志KPI指标
  3. 锁定计算机黑屏怎么办,win10锁定屏幕就黑屏怎么办_win10电脑锁定了黑屏怎么办...
  4. AV Foundationd 学习之(一)
  5. Error in v-on handler: “TypeError: this.$refs.popup.isShow is not a function“
  6. 2017年第四八届C/C++ B组蓝桥杯省赛真题
  7. 迅为i.MX6开发板mqtt 移植教程(一)
  8. 计量经济学:异方差性
  9. [乐意黎]2016年中级会计师考试《经济法》真题及答案-第一批(9.10-9.11)
  10. python中sha1 md5等用法