需求

群里的一个小朋友一直要求我帮他实现以下,我就写了一个案例。需求就是,他用canvas生成了一个base64格式的图片,然后需要将这个图片上传到服务器上面去。

代码

<!doctype html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0"><meta http-equiv="X-UA-Compatible" content="ie=edge"><title>Document</title><script src="http://libs.baidu.com/jquery/2.0.0/jquery.min.js"></script>
</head>
<body>
<img src="xwz.jpg" alt="" id="img">
</body>
<script>let img = document.querySelector("#img");img.onload = function () {//创建formdata对象var formdata = new FormData();//获取图片的base64格式var data = imgSrcToBase64(img);//将获取的base64格式图片转换为图片文件对象var imgFile = convertBase64UrlToBlob(data);//将文件添加到formdata里面formdata.append("file",imgFile);$.ajax({url: "http://localhost:3000/map",type:"post",data:formdata,processData: false,  // 不处理数据contentType: false ,  // 不设置内容类型success:function (e) {console.log(e);}});};/*** 将以base64的图片url数据转换为Blob* @param urlData*            用url方式表示的base64图片数据*/function convertBase64UrlToBlob(urlData){var bytes=window.atob(urlData.split(',')[1]);        //去掉url的头,并转换为byte//处理异常,将ascii码小于0的转换为大于0var ab = new ArrayBuffer(bytes.length);var ia = new Uint8Array(ab);for (var i = 0; i < bytes.length; i++) {ia[i] = bytes.charCodeAt(i);}return new Blob( [ab] , {type : 'image/png'});}//将图片转为base64格式function imgSrcToBase64(img) {var canvas = document.createElement("canvas");canvas.width = img.width;canvas.height = img.height;var ctx = canvas.getContext("2d");ctx.drawImage(img,0,0,img.width,img.height);return canvas.toDataURL();}
</script>
</html>

由于自己没有base64格式的图片,所以现成将一张图片转成了base64格式。然后再将其转换成二进制的格式,放入到formdata对象内,直接将formdata使用ajax上传。

通过图片地址,将图片处理成base64,使用ajax上传图片相关推荐

  1. vue通过在线图片地址实现图片下载

    vue通过在线图片地址实现图片下载 1.定义对应的方法. downloadIamge(imgsrc, name) {//下载图片地址和图片名var image = new Image()// 解决跨域 ...

  2. js vue将后台返回的url图片地址以图片形式保存到本地

    直接将下面函数复制到 项目中,传入要保存的 url, 以及要设置的文件名字,即可. // 现在 html中 定义一个容器,如 <div id="qrcode">< ...

  3. 根据图片地址检查图片格式,今日头条有效

    直接看代码 /*** 判断图片格式,如果不是GIF就返回true* 是GIF就返回false* * @param imgUrl* @return* @throws HttpException* @th ...

  4. linux用命令下载图片,Linux命令行中采集指定页面的图片地址及图片下载

    获取指定页面中的图片地址: curl news.baidu.com | grep -Eio '(http|ftp|https)://[A-Za-z0-9_./]+(.jpg|.png|.gif)' 复 ...

  5. HTML基础-05-图片(引用图片src=“图片地址“、图片位置 align=“位置“、浮动图片 style=“float:位置“、图片链接 href=“目标url“、图形映射)

    文章目录 1. 引用图片(src="图片地址") 语法示例 完整示例 2. 图片的位置(align="位置") 语法示例 完整示例 3. 浮动图片(style= ...

  6. nodejs读取图片并将二进制数据转换成base64格式

    首先,使用nodejs进行数据读取,需要用到nodejs的fs模块进行数据读取: fs.readFile('你的资源路径','binary',function(err,data){if(err){co ...

  7. php图片地址替换,php把采集内容中图片地址下载并替换成本地地址

    把字符串中地址全部获取到一个数组我们利用preg_match_all函数 代码如下 复制代码 $str=' '; $pattern="//"; preg_match_all($pa ...

  8. uni-app 动态拼接图片地址,图片无法渲染,静态地址可以显示

    先上图 这里 根据请求的参数 拼接图片的地址,采用-/方式. 问题:动态无法渲染,静态 完全可以. 解决: 这里将 路径 改成 根路径 就ok啦.试了很多种请求的方式,原来是路径问题,就解决啦.

  9. vue 组件中图片地址,图片获取

    前提:在组件中使用引用图片,用于<img src>  或者  背景图片background; 当我们利用vue-cli 搭建好项目的框架,开始高高兴兴开发组件的时候,有的时候想加一张图片, ...

  10. php根据图片地址获取图片原始高宽,Js获取图片原始宽高的实现代码

    如果我们页面看到的图片都是缩略图,那就需要做个图片点击放大效果,那么怎样获取图片的原始宽高呢?方法如下: //获取图片原始宽度 function getNaturalWidthAndHeight(im ...

最新文章

  1. 30天敏捷结果(5):使用热图标识出重要事情
  2. ICMP最典型的应用PING和traceroute
  3. 2.03-handler_openner
  4. Java数据结构与算法:队列
  5. Win10 配置 TensorFlow-gpu 深度学系框架
  6. oracle 分段函数,transcad概述强大的交通gis.pdf
  7. c++Interpolation search插值搜索的实现算法之一(附完整源码)
  8. Spring注解编程基石(一)
  9. googleearthpro打开没有地球_嫦娥五号成功着陆地球!为何嫦娥五号返回时会燃烧,升空却不会?...
  10. 推销计算机英语作文,如何自我推销英语作文
  11. [转载] python strptime函数转时间数组_python—时间与时间戳之间的转换
  12. VXLAN配置实例(二)——VXLAN跨子网互通
  13. 深度学习实现工业零件的缺陷检测
  14. win10PPT不支持Flash动画
  15. 网站域名https显示证书错误如何解决
  16. 工业大数据分析建模和算法
  17. 对字符串按“红黄蓝”进行排序,如“蓝黄红红黄”,输出结果为“红红黄黄蓝”
  18. antd走马灯组件自定义前进后退按钮
  19. Python报错 TypeError: Descriptors cannot not be created directly
  20. 使用VB.Net操作Excel输出重复内容的表格

热门文章

  1. Java Stream 实用特性:排序、分组和 teeing
  2. 什么是GHO和ISO
  3. 手把手教你搭建一个Minecraft 服务器
  4. 实验4:互联网组网与路由器配置的加分问题
  5. 神经网络训练之交叉验证
  6. 10046的使用和看法
  7. 什么是国际期货主账户?如何操作?
  8. 数据分析36计(29):价格需求弹性和因果推断
  9. 20155337 《网络安全编程》实验五实验报告
  10. Ciso下简单集线器、交换机实验