HTML5实现微信拍摄上传照片功能


Posted in Javascript onApril 21, 2017

做了个微信的HTML5拍摄上传照片功能,问题重重...

前端代码

$(':file').on('change',function(){
  var file = this.files[0];
  var url = webkitURL.createObjectURL(file);

  /* 生成图片
  * ---------------------- */
  var $img = new Image();
  $img.onload = function() {

   //生成比例
   var width = $img.width,
     height = $img.height,
     scale = width / height;
   width = parseInt(800);
   height = parseInt(width / scale);

   //生成canvas
   var $canvas = $('#canvas');
   var ctx = $canvas[0].getContext('2d');
   $canvas.attr({width : width, height : height});
   ctx.drawImage($img, 0, 0, width, height);
   var base64 = $canvas[0].toDataURL('image/jpeg',0.5);

   //发送到服务端
   $.post('upload.php',{formFile : base64.substr(22) },function(data){
    $('#php').html(data);
   });

  }
  $img.src = url;

 });

后端代码

$base64 = $_POST['formFile'];
$IMG = base64_decode( $base64 );
file_put_contents('1.png', $IMG );

实测:

电脑端

chrome 版本29,上传成功,源图片3M,压缩后1024 * 比例,约250kb 通过!

移动端

android 版本4+,微信,点击上传无反应,在手机浏览器中打开可上传,拍摄约3M-,压缩后1024* 比例,约3M-,根本没压缩嘛!!! 失败!

iphone4 & 4s 版本6+ 微信,拍摄约3M-,压缩后1024 * 比例,约250kb 通过!

iphone5 版本6+ 微信,生成canvas变形。失败!

总结:系统级BUG,无解.... 这下不知道怎么办了..

--------------------------------------- 后续报告 2013年09月12日 ----------------------------------------------

找到个牛人写的javascript编译jpg的插件,javascript_jpeg_encoder。

用这个办法可以解决android无法压缩图片的问题。

目前还剩2个系统级BUG。

1. 微信android版本无法响应上传控件 input tyle=file;

2. iphone5 生成canvas失败,画面扭曲。

--------------------------------------- 后续报告2 2013年10月10日 ---------------------------------------------

同样有一位牛人写的 ios-imagefile-megapixel 插件,解决了iphone5+画面扭曲的问题。

目前还剩1个系统级BUG。

微信android版本无法响应上传控件 input tyle=file;

--------------------------------------- 后续报告3 2014年5月16日 ---------------------------------------------

目前所有问题都解决了,在github上建立了插件,有需要的朋友可以去获取一下,顺便说一下,时间过的真快。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
JavaScript中的Location地址对象
Jan 16 Javascript
JavaScript入门教程(10) 认识其他对象
Jan 31 Javascript
js数组依据下标删除元素
Apr 14 Javascript
jquery实现表单输入时提示文字滑动向上效果
Aug 10 Javascript
JQuery EasyUI学习教程之datagrid 添加、修改、删除操作
Jul 09 Javascript
jQuery Easyui快速入门教程
Aug 21 Javascript
JavaScript方法_动力节点Java学院整理
Jun 28 Javascript
ES6学习教程之Map的常用方法总结
Aug 03 Javascript
javascript代码优化的8点总结
Jan 29 Javascript
Vue cli构建及项目打包以及出现的问题解决
Aug 27 Javascript
函数式编程入门实践(一)
Apr 20 Javascript
JS面向对象之单选框实现
Jan 17 Javascript
推荐三款日期选择插件(My97DatePicker、jquery.datepicker、Mobiscroll)
Apr 21 #jQuery
推荐三款不错的图片压缩上传插件(webuploader、localResizeIMG4、LUploader)
Apr 21 #Javascript
H5图片压缩与上传实例
Apr 21 #Javascript
H5手机端多文件上传预览插件
Apr 21 #Javascript
ES6新特性八:async函数用法实例详解
Apr 21 #Javascript
.net MVC+Bootstrap下使用localResizeIMG上传图片
Apr 21 #Javascript
jquery中$.fn和图片滚动效果实现的必备知识总结
Apr 21 #jQuery
You might like
提取HTML标签
2006/10/09 PHP
php使用PDO方法详解
2014/12/27 PHP
php轻量级的性能分析工具xhprof的安装使用
2015/08/12 PHP
服务器迁移php版本不同可能诱发的问题
2015/12/22 PHP
CodeIgniter框架验证码类库文件与用法示例
2017/03/18 PHP
php使用curl实现ftp文件下载功能
2017/05/16 PHP
laravel-admin 中列表筛选方法
2019/10/03 PHP
JSON 入门指南 想了解json的朋友可以看下
2009/08/26 Javascript
通过Javascript创建一个选择文件的对话框代码
2012/06/16 Javascript
jq实现酷炫的鼠标经过图片翻滚效果
2014/03/12 Javascript
js调用后台、后台调用前台等方法总结
2014/04/17 Javascript
jQuery取id有.的值的方法
2014/05/21 Javascript
如何书写高质量jQuery代码(使用jquery性能问题)
2014/06/30 Javascript
js实现照片墙功能实例
2015/02/05 Javascript
jQuery实现右侧显示可向左滑动展示的深色QQ客服效果代码
2015/10/23 Javascript
ajax分页效果(bootstrap模态框)
2017/01/23 Javascript
JavaScript表单即时验证 验证不成功不能提交
2017/08/31 Javascript
vue.js系列中的vue-fontawesome使用
2018/02/10 Javascript
vue实现条件叠加搜索的解决方法
2019/05/28 Javascript
微信小程序3D轮播实现代码
2019/09/19 Javascript
vue 实现购物车总价计算
2019/11/06 Javascript
JS实现多功能计算器
2020/10/28 Javascript
Python中获取对象信息的方法
2015/04/27 Python
详解在Python的Django框架中创建模板库的方法
2015/07/20 Python
python3基于TCP实现CS架构文件传输
2018/07/28 Python
Python爬虫 scrapy框架爬取某招聘网存入mongodb解析
2019/07/31 Python
CSS3中的注音对齐属性ruby-align用法指南
2016/07/01 HTML / CSS
美国领先的商务贺卡出版商:The Gallery Collection
2018/02/13 全球购物
Herschel Supply Co.美国:背包、手提袋及配件
2020/11/24 全球购物
Python文件操作的面试题
2013/06/22 面试题
介绍一下except的用法和作用
2015/01/22 面试题
学生会干部自荐信
2014/02/04 职场文书
我的中国梦演讲稿600字
2014/08/19 职场文书
民用住房租房协议书
2014/10/29 职场文书
四年级小学生评语
2014/12/26 职场文书
创业计划书之美甲店
2019/09/20 职场文书