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 相关文章推荐
根据分辨率不同,调用不同的css文件
Aug 25 Javascript
用js计算页面执行时间的函数
Dec 07 Javascript
JS获取父节点方法
Aug 20 Javascript
js字符串转成JSON
Nov 07 Javascript
javascript模拟实现C# String.format函数功能代码
Nov 25 Javascript
禁止拷贝网页内容的js代码
Jan 22 Javascript
Javascript实现快速排序(Quicksort)的算法详解
Sep 06 Javascript
基于JS实现无缝滚动思路及代码分享
Jun 07 Javascript
微信小程序 天气预报开发实例代码源码
Jan 20 Javascript
js处理包含中文的字符串实例
Oct 11 Javascript
微信小程序去除左上角返回键的实现方法
Mar 06 Javascript
Taro UI框架开发小程序实现左滑喜欢右滑不喜欢效果的示例代码
May 18 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
PHP新手上路(二)
2006/10/09 PHP
php截取utf-8中文字符串乱码的解决方法
2010/03/29 PHP
php通过记录IP来防止表单重复提交方法分析
2014/12/16 PHP
Codeigniter通过SimpleXML将xml转换成对象的方法
2015/03/19 PHP
php单链表实现代码分享
2016/07/04 PHP
使用ThinkPHP的自动完成实现无限级分类实例详解
2016/09/02 PHP
纯CSS打造的导航菜单(附jquery版)
2010/08/07 Javascript
从零学JS之你需要了解的几本书
2014/05/19 Javascript
解决Jquery向页面append新元素之后事件的绑定问题
2015/03/16 Javascript
JavaScript使用位运算符判断奇数和偶数的方法
2015/06/01 Javascript
js控制多图左右滚动切换效果代码分享
2015/08/26 Javascript
为何JS操作的href都是javascript:void(0);呢
2015/11/12 Javascript
基于JS实现PHP的sprintf函数实例
2015/11/14 Javascript
理解js对象继承的N种模式
2016/01/25 Javascript
微信小程序图片宽100%显示并且不变形
2017/06/21 Javascript
Vuex中mutations与actions的区别详解
2018/03/01 Javascript
浅谈JavaScript 代码简洁之道
2019/01/09 Javascript
用vscode开发vue应用的方法步骤
2019/05/06 Javascript
通过实例解析js简易模块加载器
2019/06/17 Javascript
JavaScript 防抖和节流遇见的奇怪问题及解决
2020/11/20 Javascript
Python之str操作方法(详解)
2017/06/19 Python
Django + Uwsgi + Nginx 实现生产环境部署的方法
2018/06/20 Python
python检测文件夹变化,并拷贝有更新的文件到对应目录的方法
2018/10/17 Python
python flask 如何修改默认端口号的方法步骤
2019/07/12 Python
python Django里CSRF 对应策略详解
2019/08/05 Python
3行Python代码实现图像照片抠图和换底色的方法
2019/10/10 Python
Python+Selenium+phantomjs实现网页模拟登录和截图功能(windows环境)
2019/12/11 Python
iPython pylab模式启动方式
2020/04/24 Python
水务局局长岗位职责
2013/11/28 职场文书
计算机专业毕业生求职信分享
2013/12/24 职场文书
销售助理岗位职责
2014/02/21 职场文书
经典而简洁的婚礼主持词
2014/03/13 职场文书
党员公开承诺书范文
2014/03/25 职场文书
激励口号大全
2014/06/17 职场文书
我们的节日中秋节活动总结
2015/03/23 职场文书
新娘婚礼致辞
2015/07/27 职场文书