场景

由于项目需求,需要将图片 url 转成文件格式上传到服务器

参考博客:图片url转file

封装js

transferFile.js

function setInitImg(url,callback){let img = url;//这里是淘宝上随便找的一张图片let _ = thislet imgResgetBase64(img, (dataURL) => {imgRes = dataURLtoFile(dataURL,img);console.log(imgRes)callback(imgRes)});
}function getBase64(url, callback) {//通过构造函数来创建的 img 实例,在赋予 src 值后就会立刻下载图片,相比 createElement() 创建 <img> 省去了 append(),也就避免了文档冗余和污染var Img = new Image(),dataURL = "";Img.src = url + "?v=" + Math.random(); // 处理缓存,fix缓存bug,有缓存,浏览器会报错;Img.setAttribute("crossOrigin", "Anonymous"); // 解决控制台跨域报错的问题Img.onload = function () {//要先确保图片完整获取到,这是个异步事件var canvas = document.createElement("canvas"), //创建canvas元素width = Img.width, //确保canvas的尺寸和图片一样height = Img.height;canvas.width = width;canvas.height = height;canvas.getContext("2d").drawImage(Img, 0, 0, width, height); //将图片绘制到canvas中dataURL = canvas.toDataURL("image/jpeg"); //转换图片为dataURLcallback ? callback(dataURL) : null; //调用回调函数};
}function dataURLtoFile(dataurl, filename) {//将base64转换为文件,dataurl为base64字符串,filename为文件名(必须带后缀名,如.jpg,.png)var arr = dataurl.split(","),mime = arr[0].match(/:(.*?);/)[1],bstr = atob(arr[1]),n = bstr.length,u8arr = new Uint8Array(n);while (n--) {u8arr[n] = bstr.charCodeAt(n);}return new File([u8arr], filename, { type: mime });
}export {setInitImg
}

调用方式

import {setInitImg} from './transferFile'
setInitImg('https://cube.elemecdn.com/6/94/4d3ea53c084bad6931a56d5158a48jpeg.jpeg',(file)=>{this.fileList.push(file)})

看一下转成的文件

js图片url反转file文件相关推荐

  1. Java 将网络图片URL 转为file文件

    Java 将网络图片URL 转为file文件;某个需求要求将图片一起导出,图片只有地址,这里将图片先转为file,然后导出excel 代码示例 /*** 将图片转为file** @param url ...

  2. 关于这些年做的 图片上传下载做的处理总结(including根据图片url上传文件)

    下载文档 我们查柜的认知是后端给前端传一个链接地址,将地址放在a标签上,点击链接下载文件. 可有时候往往不是这样的,后端给前端返回了一个文档流,这就需要我们自己转换为Blob格式的数据,再使用这个数据 ...

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

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

  4. js 获取input type=file 文件,并且上传

    html页面: <input type="file" class="inputPic" allowexts="gif,jpeg,jpg,png, ...

  5. js通过URL下载服务器文件(可行方法)

    本文讲述已知文件在服务器的地址,如何下载至本地 其他博客分享的一般是这两种 1.通过window.open window.open('https://1.1.1.1/test.txt') 2.通过ge ...

  6. 前端FileReader对象实现图片file文件转base64

    1.file转base64具体代码 // 图片file转base64方法(file文件,回调函数)fileToBase64(file, callback) {// 创建FileReader对象(不兼容 ...

  7. js:图片url转base64编码

    思路: 将图片url转为Image对象 将Image对象绘制到Canvas上 将Canvas对象转为Base64 实现代码 // Image对象转base64 function imageToBase ...

  8. js图片大小压缩到指定范围

    文章目录 1. compressUtil.js 2. 使用方法 1. compressUtil.js /*** 图片压缩类* @param minSize* @param maxSize* @cons ...

  9. 通过文件url地址获取base64;通过图片url地址获取base64;js获取文件的base64

    本篇是通过url地址获取文件的base64 如果想要通过File文件获取base64查看这篇 以下代码可直接复制使用!注意第9行的图片地址更改下 <template><div cla ...

  10. js 获取图片url的Blob值并预览

    js 获取图片url的Blob值并预览 1)使用 XMLHttpRequest 对象获取图片url的Blob值 参考:https://www.cnblogs.com/tujia/p/6483255.h ...

最新文章

  1. 深度学习--TensorFlow (2)单层感知器2 -- 实现多数据分类
  2. [转]PHP--优化PHP代码建议
  3. 网页魔法菜单(使用说明)
  4. mysql pgsql 2017,DB-Engines 2017 年度数据库:PostgreSQL 实至名归
  5. 驳!?使用游戏引擎是作弊行为的5个依据
  6. 无穷大功率电源matlab仿真,MATLAB-Simulink系统建模与仿真-实验报告
  7. 博弈论(基础概念+例题)
  8. oracle数据库主键消失,oracle数据库提示找不到主键
  9. 自动驾驶算法-滤波器系列(八)——IMM交互多模型介绍
  10. python中if brthon环境安装包_python-debian/test.deb.uu at master · romlok/python-debian · GitHub...
  11. usb转rs485测试软件,usb转rs485
  12. arduino代码_Arduino超声波传感器测距代码完全解析
  13. 怎么更改网络选项为家庭计算机,我的现在是公用网络我想更改为家庭网络应该如何更改...
  14. 一个公务员工作七年后的肺腑之言”——给想考公务员的XDJM们看看,或许能有帮助
  15. openwrt的两种固件类型:factory原厂固件、sysupgrade固件
  16. 灾难等级排列 那些尴尬的智能家居设备
  17. ::before 和:after的区别
  18. 我们从下面几个方面来区别led天花灯和led筒灯
  19. scala-简单的模式匹配
  20. 一条气象预警是如何产生的

热门文章

  1. 【python教程入门学习】值得学习练手的70个Python项目(附代码)
  2. php gd libpng,libpng版本问题导致的PHP调用gd扩展出错解决方案
  3. bzoj1005 [HNOI2008]明明的烦恼(Prufer数列+高精度(wys算法。。。))
  4. 嵌入式linux ucgui,四、嵌入式之图形界面 (3) uCGui
  5. ucgui界面 vc_【MM32F103试用体验】ucGUI + FreeRTOS +触摸屏图形界面开发
  6. Itext对pdf模板进行电子签名
  7. java实现excel转图片功能
  8. 怎么让composer加速
  9. OFD文件怎么编辑修改?
  10. 《OpenCV3编程入门》毛星云编著