jincon 发表于 2015-02-26 18:31:01 发表在: php开发
- 通常压缩图片需要上传到后端,由后端处理。
- 但是如果要上传的图片很大,特别是手机当场拍摄下来的照片(约2M+),那样效率会很低,用户也不会愿意等待。
- 现在能够由前端本地压缩的话,效率将会极大的提升。
这个玩意很强大的地方就在于他可以在HTML5 前端压缩 ,大大加快了上传速度,以及节约流量。
直接上写好的demo了
HTML
01 |
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" |
05 |
<title> New Document </title> |
06 |
<meta name="Generator" content="EditPlus"> |
07 |
<meta name="Author" content=""> |
08 |
<meta name="Keywords" content=""> |
09 |
<meta name="Description" content=""> |
10 |
<script src="lrz.mobile.min.js"></script> |
15 |
<input type="file" capture="camera" /> |
17 |
var input = document.querySelector('input'); |
18 |
input.onchange = function () { |
19 |
lrz(this.files[0], {width: 100}, function (results) { |
20 |
// 你需要的数据都在这里,可以以字符串的形式传送base64给服务端转存为图片。 |
24 |
var xhr = new XMLHttpRequest(); |
26 |
base64: results.base64, |
27 |
size: results.base64.length // 校验用,防止未完整接收 |
29 |
xhr.open('POST', '1.php'); |
30 |
xhr.setRequestHeader('Content-Type', 'application/json; charset=utf-8'); |
31 |
xhr.onreadystatechange = function () { |
32 |
if (xhr.readyState === 4 && xhr.status === 200) { |
33 |
var result = JSON.parse(xhr.response); |
35 |
? alert('服务端错误,未能保存图片') |
36 |
//: demo_report('服务端实存的图片', result.src, result.size); |
40 |
xhr.send(JSON.stringify(data)); // 发送base64 |
重要的是很多的人不知道这个工具是后端该如何处理,所以贴出php的代码:
03 |
$base64=json_decode($base64,1); |
04 |
$data = $base64['base64']; |
05 |
preg_match("/data:image\/(.*);base64,/",$data,$res); |
07 |
if(!in_array($ext,array("jpg","jpeg","png","gif"))){ |
08 |
echo json_encode(array("error"=>1));die; |
10 |
$file=time().'.'.$ext; |
11 |
$data = preg_replace("/data:image\/(.*);base64,/","",$data); |
12 |
if (file_put_contents($file,base64_decode($data))===false) { |
13 |
echo json_encode(array("error"=>1)); |
15 |
echo json_encode(array("error"=>0)); |
下载地址:
https://github.com/think2011/localResizeIMG3/releases
- html5+js压缩图片上传
最近在折腾移动站的开发,涉及到了一个手机里面上传图片.于是经过N久的折腾,找到一个插件,用法如下: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 ...
- 基于html5的多图片上传,预览
基于html5的多图片上传 本文是建立在张鑫旭大神的多文图片传的基础之上. 首先先放出来大神多图片上传的博客地址:http://www.zhangxinxu.com/wordpress/2011/09 ...
- WebUploader压缩图片上传
WebUploader,由Baidu FEX 团队开发,以H5为主,FLASH为辅,兼容 IE6+,iOS 6+, android 4+,采用大文件分片并发上传,极大的提高了文件上传效率,看了官方文档 ...
- js压缩图片上传插件localResizeIMG
示例 /** * 本地图片压缩后上传 */ $("#vfile").change(function(){ var _this = $(this); lrz(this.files[0 ...
- 基于前台vue,后台是spring boot的压缩图片上传
本人是刚毕业的新手,最近公司的一个项目,前后端分离,前端Vue,后端使用spring boot.其中有一个需求是需要做前端上传的图片需要压缩才能上传.为此在网上查找资料,并做了简单的实现. 那么一步来 ...
- ios中摄像头/相册获取图片压缩图片上传服务器方法总结
本文章介绍了关于ios中摄像头/相册获取图片,压缩图片,上传服务器方法总结,有需要了解的同学可以参考一下下. 这几天在搞iphone上面一个应用的开发,里面有需要摄像头/相册编程和图片上传的问 ...
- js 压缩图片 上传
感谢,参考了以下作者的绝大部分内容 https://blog.csdn.net/tangxiujiang/article/details/78755292 https://blog.csdn.net/ ...
- HTML5 FileReader实现图片上传前预览
如果你的浏览器支持Html5的FileReader的话,实现图片上传前进行预览是一件非常容易之事情. 在控制器,创建一个视图Action: jQuery代码: 实时演示一下: 下面内容于2014-11 ...
- HTML5移动端图片上传模块
上传图片的功能是极为常用的,之前做过一个移动端上传文件的功能(基于jquery的),总结梳理一下. html <div class="uploadPic clearBox"& ...
随机推荐
- MVC2 Area实现网站多级目录
Areas是ASP.NET Mvc 2.0版本中引入的众多新特性之一,它可以帮你把一个较大型的Web项目分成若干组成部分,即Area.实现Area的功能可以有两个组织形式: 在1个ASP.NET Mv ...
- maven_项目的依赖、聚合、继承
一.假设目前有三个maven项目,分别是project.A.project.B.project.C 要求B依赖A.C依赖B但不依赖C 1.B添加对A的依赖 1 2 3 4 5 <depend ...
- hdu1281 二分匹配
求重要的点.那就可以通过枚举来找:先做一次最大匹配,求出匹配数.然后逐一枚举这些点.如果匹配数改变,那就是重要点: #include<stdio.h> #include<string ...
- android 6.0 SDK中删除HttpClient的相关类的解决方法
一.出现的情况 在eclipse或 android studio开发, 设置android SDK的编译版本为23时,且使用了httpClient相关类的库项目:如android-async-http ...
- IIS7部署项目时提示:"错误消息 401.2。: 未经授权: 服务器配置导致登录失败。"的解决办法
这个错误的定位:你的站点使用了Forms验证,而且在部署在生产环境的时候,设置错误,或者注释了. 解决方法如下: 1.检查Forms配置是否屏蔽. 2.有权限访问的资源是否已经开发. 基本就围绕以上两 ...
- eclipse中新建python项目报错:Project interpreter not specified
eclipse-windows-preferences-python
- Linux系统如何查看版本信息
输入"uname -a ",可显示电脑以及操作系统的相关信息. 输入"cat /proc/version",说明正在运行的内核版本. 输入"c ...
- js校验表单后提交表单的三种方法总结
第一种: 复制代码 代码如下: <script type="text/javascript"> function check(form) { if(fo ...
- C#实现AES加解密方法
using System; using System.Collections.Generic; using System.Text; using System.Security.Cryptograph ...
- lamp环境centos6.4
http://www.centos.bz/2011/09/centos-compile-lamp-apache-mysql-php/comment-page-1/#comments 编译安装: 首先卸 ...