人工智能的时代来临了!!!腾讯云的智能识别身份证仅支持1M大小以下的图片那么咱们前端是不是就要将图片压缩再上传了! 我遇到的时候找了好多博客 大部分是后台给压缩,有几个前端压缩的也是代码量挺大的 所以只能自己写一个了 下面进入源码-------------------

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8"><title></title><script src="http://yzx-t.lvjinhui.cn/jquery-2.1.0.js" type="text/javascript" charset="utf-8"></script><script type="text/javascript">function photoCompress(file,w,objDiv){var ready=new FileReader();/*开始读取指定的Blob对象或File对象中的内容. 当读取操作完成时,readyState属性的值会成为DONE,如果设置了onloadend事件处理程序,则调用之.同时,result属性中将包含一个data: URL格式的字符串以表示所读取文件的内容.*/ready.readAsDataURL(file);ready.οnlοad=function(){var re=this.result;canvasDataURL(re,w,objDiv)}}function canvasDataURL(path, obj, callback){var img = new Image();img.src = path;img.onload = function(){var that = this;// 默认按比例压缩var w = that.width,h = that.height,scale = w / h;w = obj.width || w;h = obj.height || (w / scale);var quality = 0.7;  // 默认图片质量为0.7//生成canvasvar canvas = document.createElement('canvas');var ctx = canvas.getContext('2d');// 创建属性节点var anw = document.createAttribute("width");anw.nodeValue = w;var anh = document.createAttribute("height");anh.nodeValue = h;canvas.setAttributeNode(anw);canvas.setAttributeNode(anh); ctx.drawImage(that, 0, 0, w, h);// 图像质量if(obj.quality && obj.quality <= 1 && obj.quality > 0){quality = obj.quality;}// quality值越小,所绘制出的图像越模糊var base64 = canvas.toDataURL('image/jpeg', quality);// 回调函数返回base64的值callback(base64);}}/** *       用url方式表示的base64图片数据  */  function convertBase64UrlToBlob(urlData){  var arr = urlData.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 Blob([u8arr], {type:mime});} var bl="",fileObj;function filess(e){fileObj = document.getElementById("file").files[0]; // js 获取文件对象console.log("压缩前:" + fileObj.size / 1024 + "k");if(fileObj.size/1024 > 100) { //大于1M,进行压缩上传photoCompress(fileObj, {quality: 0.2}, function(base64Codes){console.log("压缩后:" + base64Codes.length / 1024 + "k");bl = convertBase64UrlToBlob(base64Codes);console.log(bl);});    }}//上传文件方法function UpladFile() {var params = new FormData();if (bl=="") {params.append("photo",fileObj);}else{params.append("photo",bl,"file_"+Date.parse(new Date())+".jpg");}$.ajax({url:"http://qxu1142100139.my3w.com/public/index/Index/updata_p",type:"post",contentType: false,  processData: false,data:params,success:function(res){alert("上传成功");console.log(res.code);if (res.code==200) {alert("上传成功");}else{alert("上传失败");}}});}</script>
</head>
<body><input type="file" id="file" name="myfile" οnchange="filess(this)" /><input type="button" οnclick="UpladFile()" value="上传" />
</body>
</html>

如果本博客使您解决了一些迷惑或者使您学到了一些东西请您动动小手点个赞!!

遇到上传的图片太大怎么办?那么来试试压缩上传相关推荐

  1. 图片太大,如何免费进行压缩

    工作中是不是经常遇到图片太大的问题,一般提交电子证件照时都要求100KB以内,那么有没有免费将图片压缩变小的方法呢? 直接使用speedpdf在线转换器,这个在线转换工具除了常用的很多格式间的转换外, ...

  2. 解决input file上传图片,部分手机拍照或者本地图片无法上传(图片太大,需要上传之前先压缩)

    现在一般手机拍的照片都好几兆,图片文件太大会非常影响上传速度或者根本上传不上去,故上传图片前需要先进行压缩,这里使用的是lrz.js(lrz.js文件这里就不提供了) <input type=& ...

  3. 移动端上(传图片太大)处理方案

    利用FileReader和FormData实现图片预览和上传(base64转二进制文件) 监听表单文件变化 文件表单的样式主要通过让它后面,通过别的DOM来美化它. <input type=&q ...

  4. 图片太大不能上传怎么办?

    图片太大不能上传怎么办?不管你是上班族还是学生,这几乎是每个人都遇到过的问题,很多网站为了防止自己的服务器存储空间不那么快被占用完,都会对上传的图片大小进行限制,操作大小限制的图片是不能被上传成功的. ...

  5. 图片太大?不符合上传大小?PS帮你搞定!

    前言 有时,我们需要将图片上传到网站或软件,如果限制了图片上传大小,则我们需要压缩图片的大小来满足人家的规则. 如果用大白话谈压缩的话,无非就是图片品质.颜色.宽高决定了图片大小. 解决图片太大的问题 ...

  6. 电脑怎么压缩jpg图片?上传jpg图片过大怎么办?

    遇到上传jpg图片过大时该怎么压缩jpg图片大小呢?在这里给大家推荐一款在线压缩jpg图片的工具--压缩图,使用它的jpg图片压缩功能只需要简单的几步就可以完成图片压缩,一起来看看吧. 1.使用电脑浏 ...

  7. 小程序Canvas绘制图片太大,自动闪退,安卓会有crash问题

    2019独角兽企业重金招聘Python工程师标准>>> 问题说明: 目前小程序Canvas版本还有不少bug,性能较低. 对于图片太大使用ctx.drawImage(imgpath, ...

  8. jpg图片太大怎么压缩变小

    jpg图片太大怎么压缩变小?Jpg格式的图片,不但兼容性好,其画质也很优秀,是使用率最高的一种图片格式.jpg格式的图片在使用中唯一经常遇到的麻烦就是因其图片体积大被很多平台限制上传.而且解决jpg图 ...

  9. 图片太大怎么压缩变小?压缩有技巧

    图片太大怎么压缩变小?在网上报考时,我们会需要将证件照或者其他图片上传到网站上,这些网站通常有着严格的上传规格,不符合规定就无法上传.而有些图片体积过大怎么办?这时就需要将其压缩变小,有没有方便快捷的 ...

最新文章

  1. 检查linux是否安装zlib,Linux下安装zlib
  2. 单链表-逆置单链表(修改指针指向且三个指针)
  3. bzoj 2878 [Noi2012]迷失游乐园——树上的期望dp
  4. python中取整数的四种方法
  5. Comparison of video container formats
  6. c语言define定义全局变量,webpack中使用DefinePlugin定义全局变量
  7. 神州数码代表亚太及日本区荣膺Riverbed 2017年度最佳分销商
  8. 我是如何把SpringBoot项目的并发提升十倍量级的
  9. 十进制转36进制(10进制转任意进制的方法)
  10. 史上最污技术解读,60 个 IT 术语我竟然秒懂了......
  11. UnicodeDecodeError: 'ascii' codec can't decode byte 0xf6 in position 0: ordinal not in range(128)
  12. 惊艳的成长计划表刷屏!武大首位 94 年博士入职华为,年薪达 201 万
  13. 基于RT-Thread的环境监测装置(含IO口模拟8080时序驱动TFT屏幕)
  14. 中国大学MOOC中国文化概论试题(含答案)
  15. 次数分布和平均数、变异数间断性变数资料的整理
  16. php zen kaku代表什么,Convert kana one from another (zen-kaku, han-kaku and more) - PHP 7 中文文档...
  17. linux内核DCB子系统
  18. [Python]游戏编程--人工智能1
  19. 360随身WiFi在没有网络的情况下打开热点
  20. 【阿里2013实习笔试】找明星

热门文章

  1. 手把手教你搭建属于自己的技术博客(小白教程)
  2. tensorflow目标检测API实现
  3. PWM+DMA驱动SK6812MINI灯带
  4. 强大的数学专业工具Maple快速上手
  5. 反卷积原理不可多得的好文
  6. 高可用网站架构设计与实现
  7. uniapp下载文件保存自定义目录
  8. android hid触摸屏,Android USB触摸屏HID描述符问题
  9. 蓝桥杯比赛时间在什么时候_LOL赛季奖励什么时候发 S10赛季奖励发放时间什么时候...
  10. XML的基本概念和Android下的使用