一些场景,比如canvas获取的图片,或者微信开发sdk返回的图片格式是data:img格式的,我们需要上传到服务器上,那就需要进行转化。
1、将dataURL转成Blob

// base64 转 blob
dataURItoBlob(dataURI) {// convert base64/URLEncoded data component to raw binary data held in a stringlet byteString;if (dataURI.split(',')[0].indexOf('base64') >= 0) {byteString = atob(dataURI.split(',')[1]);} else byteString = unescape(dataURI.split(',')[1]);// separate out the mime componentconst mimeString = dataURI.split(',')[0].split(':')[1].split(';')[0];// write the bytes of the string to a typed arrayconst ia = new Uint8Array(byteString.length);for (let i = 0; i < byteString.length; i++) {ia[i] = byteString.charCodeAt(i);}return new Blob([ia], { type: mimeString });
},

2、构建Form上传表单

const blob = dataURItoBlob(imgDataUrl);
const formData = new FormData();
// formData.append('auth', state.token.auth); 可以选择性的加入一些鉴权
formData.append('file', blob);

3、进行数据上传,我这里使用的是axios

 const params = {url: '/store/file',payload: formData};const data = await this.upload(params);

我已经对axios进行了封装

export const upload = (params) => {const { url, payload } = paramsreturn axios.post(url, payload, {headers: {'Content-Type': 'multipart/form-data'}}).then(x => x.data)
}

data:image data url 文件上传相关推荐

  1. php利用ajax文件上传,如何在PHP中利用AjaxForm实现一个文件上传功能

    如何在PHP中利用AjaxForm实现一个文件上传功能 发布时间:2020-12-18 14:52:38 来源:亿速云 阅读:94 作者:Leah 如何在PHP中利用AjaxForm实现一个文件上传功 ...

  2. Flutter dio 文件上传下载

    Dio 是Flutter 网络请求的Pub包 Dio除了常用的get post 还可以文件下载 上传等操作 关于文件分片上传 或者文件下载 用到的pub 包 #文件选择file_selector: ^ ...

  3. 电脑无法上传html文件类型,HTML5 - 限制文件上传(HTML5 - Restrict file upload)

    HTML5 - 限制文件上传(HTML5 - Restrict file upload) 上面的代码也允许上传.txt或任何类型的文件. 如何限制 html5中的其他文件类型 ? Above code ...

  4. 文件上传-自定义上传(修改上传文件名

    bug描述:批量发券功能,上传excel文件,同名文件内容不同,最新上传会覆盖旧数据 原因:公共资源接口的返回的url为日期,不带时间戳,同日期上传同名文件会覆盖之前的同名文件(同链接)内容 2.解决 ...

  5. 后台学习六---ajaxFileupload文件上传下载

    这一章讲讲文件的上传下载,这里我们使用ajax的上传文件方法. ps:基于maven的springmvc框架都已经搭建好了的,如有问题,参考 : 后台学习一-spring+maven+mybatis+ ...

  6. PHP网站设计 ---- 网盘(实现用户注册、登录,文件上传、下载、删除、查看等功能)

    PHP网站设计 ---- 网盘(实现用户注册.登录,文件上传.下载.删除.查看等功能) 运行效果 视频演示 项目下载(在xampp/htdocs/下可以直接运行) 完整项目包.zip 功能要求 当用户 ...

  7. js实现文件上传进度条功能

    开发中可能会涉及到需要展示文件上传进度条显示,方便用户知道文件的上传状态.其实进度条展示只需要拿到文件已上传的大小,和被上传文件的总大小即可.废话不多说直接上代码!! class fileUpload ...

  8. Vue:利用Plupload插件封装文件上传组件

    接上回<Plupload插件>,已经尝试将Plupload插件引入到HTML页面中,并进行参数配置,然后联合后端接口进行调试,完成了文件上传的工作.但是在Vue项目的开发中,我们更想将它封 ...

  9. 文件上传插件 bootstrap-fileinput ,后台使用的C#语言

    官方教程:http://plugins.krajee.com/file-input#ajax-uploads 下载官方Demo后,引用样式和js文件,此项目是将所有的文件放在一个文件下 <bod ...

最新文章

  1. 4.7 mini趴 走进猎豹
  2. hihoCoder 网络流四·最小路径覆盖
  3. 征途单机版场景服务器端口被占用,模拟城市5解决端口被占用的方法
  4. 位操作的应用:判断一个数是不是2的幂数,实现循环移位【位操作】(55)
  5. RouterOS双线进行IP分流上网
  6. [渝粤教育] 辽宁对外经贸学院 国际集装箱多式联运 参考 资料
  7. 新来的大神用策略模式把if else给优化了,技术总监说:能不能想好了再改?...
  8. python输入list_python学习(list增删改查、及常用方法)
  9. java开发怎么包装_Java开发知识之Java的包装类
  10. LwIP协议栈源码说明
  11. k2路由器刷华硕固件
  12. es文件搜索不到win7服务器,ES文件浏览器Win7局域网共享错误解决方案
  13. 吴伯凡-认知方法论-认知是一个长期修炼的过程
  14. 前端javascript如何分享内容到twitter和Email
  15. 人机版五子棋两种算法概述
  16. 视频号该如何涨粉引流,分享10种涨粉技巧+5种引流方法丨国仁网络
  17. 中科蓝汛 NTC 检测
  18. centos raid挂载_服务器挂载磁盘阵列
  19. 图形图像处理-之-任意角度的高质量的快速的图像旋转 上篇 纯软件的任意角度的快速旋转
  20. Z-Wave 700应用程序框架第七章 - 固件更新和引导加载程序

热门文章

  1. 工作193:vue.runtime.esm.js?2b0e:619 [Vue warn]: <transition-group> children must be keyed: <ElTag>
  2. “约见”面试官系列之常见面试题之第九十一篇之简述Vue的生命周期适用于哪些场景(建议收藏)
  3. 前端学习(2339):React出现的历史背景
  4. “约见”面试官系列之常见面试题第十三篇之css动画效果(建议收藏)
  5. 前端学习(1095):ES5新增方法
  6. 前端学习(955):移动端特效导读
  7. 前端学习(80):按类型划分标签(inline)
  8. java学习(14):java命名规范
  9. H5页面移动端双击屏幕禁止页面放大
  10. codesys中打开linux端的串口_CODESYS版本3.5 SP14 Patch 3发布