介绍
使用php怎么实现多图上传压缩代码功能吗?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。
1,先创建的一个简单的上传页面上传。php。先通过前端代码压缩图片,直接上代码
& lt; ! DOCTYPE html> & lt; html> & lt; head> & lt;才能meta charset=癠TF-8"比; & lt;才能meta name=皏iewport",内容=翱矶?设备宽度,初始=1,最大范围=1,最小规模=1,user-scalable=不,,minimal-ui"比; & lt;才能title>实名验证& lt;/title> & lt;才能script 类型=拔谋?javascript"比; ,,/* ,,,三个参数 ,,,文件:一个是文件(类型是图片格式), ,,,w:一个是文件压缩的后宽度,宽度越小,字节越小 ,,,objDiv:一个是容器或者回调函数 ,,,photoCompress () ,,,*/,,,function photoCompress(文件、w objDiv) { ,,,,,var 准备=new FileReader (); ,,,,,/*开始读取指定的团对象或文件对象中的内容只当读取操作完成时,判别属性的值会成为完成,如果设置了onloadend事件处理程序,则调用之,同时,结果属性中将包含一个数据:URL,格式的字符串以表示所读取文件的内容。*/,,,,,ready.readAsDataURL(文件); ,,,,,ready.onload=function () { ,,,,,,,var re=this.result; ,,,,,,,canvasDataURL (re w objDiv) ,,,,,} ,,,} ,,,function canvasDataURL (obj,路径,,回调){ ,,,,,var img =, new 图像(); ,,,,,img.src =,路径; ,,,,,img.onload =,函数(){ ,,,,,,,var that =,; ,,,,,,,//,默认按比例压缩 ,,,,,,,var w =, that.width, ,,,,,,,,,h =, that.height, ,,,,,,,,,scale =, w /, h; ,,,,,,,w =, obj.width | |, w; ,,,,,,,h =, obj.height | |,(时间/w 规模); ,,,,,,,var quality =, 0.7;,//,默认图片质量为0.7 ,,,,,,,//生成画布 ,,,,,,,var canvas =, document.createElement(& # 39;帆布# 39;); ,,,,,,,var ctx =, canvas.getContext (& # 39; 2 d # 39;); ,,,,,,,//,创建属性节点 ,,,,,,,var anw =, document.createAttribute (“width"); ,,,,,,,anw.nodeValue =, w; ,,,,,,,var anh =, document.createAttribute (“height"); ,,,,,,,anh.nodeValue =, h; ,,,,,,,canvas.setAttributeNode(出全新); ,,,,,,,canvas.setAttributeNode(安); ,,,,,,,ctx.drawImage (,, 0, 0,, w, h); ,,,,,,,//,图像质量 ,,,,,,,如果(obj.quality ,,, obj.quality & lt;=, 1,,,, obj.quality 祝辞,0){ ,,,,,,,,,quality =, obj.quality; ,,,,,,,} ,,,,,,,//,质量值越小,所绘制出的图像越模糊 ,,,,,,,var base64 =, canvas.toDataURL(& # 39;图像/jpeg # 39;,,质量); ,,,,,,,//,回调函数返回base64的值 ,,,,,,,回调(base64); ,,,,,} ,,,} ,,,/* * ,,,,*,将以base64的图片url数据转换为Blob ,,,,*,@param urlData ,,,,*,用url方式表示的base64图片数据 ,,,*/,,,function convertBase64UrlToBlob (urlData) { ,,,,,var arr =, urlData.split (& # 39; & # 39;),, mime =, arr [0] .match (/: (. * ?);/) [1], ,,,,,,,bstr =, atob (arr [1]), n =, bstr.length,, u8arr =, new Uint8Array (n); ,,,,,,(n)) { ,,,,,,,u8arr [n],=, bstr.charCodeAt (n); null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null使用php怎么实现多图上传压缩代码功能