亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 網站 > WEB開發 > 正文

移動端html5多圖上傳并壓縮實現

2024-04-27 15:03:48
字體:
來源:轉載
供稿:網友

參考:https://my.oschina.net/swingcoder/blog/682357

demo:http://mhbseal.com/demo/html5/html5ImgComPRess/demo/index.html

簡單說明: 關鍵代碼,就是利用html5的canvas重繪圖片,指定質量和尺寸達到在前端壓縮后再上傳的目的。 base64編碼,并上傳到后臺,再轉換成file格式,保存到服務器

前端代碼:

<!DOCTYPE html><html><head>  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">  <meta name="viewport" content="width=device-width, initial-scale=1.0">  <title>活動反饋</title>  <link rel="stylesheet" href="__TMPL__Publish/Wx/CSS/public.css" type="text/css"/>  <link rel="stylesheet" href="__TMPL__Publish/Wx/css/tickling.css" type="text/css"/>  <script src="__TMPL__Publish/Wx/js/jquery-1.11.1.min.js"></script>  <script src="__TMPL__Publish/Wx/js/html5ImgCompress.min.js"></script>      <script src="__PUBLIC__/js/mui.min.js"></script></head><body><div class="main">      <form class="mark_form" method="post" action="{:U('Wx/tickling_post')}" enctype="multipart/form-data">  <input type="hidden" id="tupian" name="tupian" value=""/>   <div class="mark_content">      <textarea class="content" name="content" placeholder="說說活動開展的情況吧"></textarea>   </div>      <ul class="mark_img">      <li class="mark_img_li tone">        <input type="button" class="btn"/>                <input type="file" multiple name="cover[]"  id="multiple" value=""/>      </li>                          </ul>     <!--<div class="mark_img">         </div>-->    <div class="clear"></div>      <div class="tijiao">提交</div>      </form></div><div id="box"></div></body><script>var act_id="{$id}";var sh;	function skip()	{		var url="{:U('Wx/sign_record')}";		location.href=url+'&id='+act_id;				clearInterval(sh);	}	 var arr=[];   var j = 1;  $(function () {	      // 多張    $('#multiple').on('change', function (e) {      var        i = 0,        files = e.target.files,		        len = files.length,        notSupport = false;		      // 循環多張圖片,需要for循環和notSupport變量支持(檢測)      for (; i < len; i++) {		  		  if(!/image///w+/.test(files[i].type)){			  					mui.toast("請確保文件為圖像類型");										return false;    				}				        if (!notSupport) {          (function(i) {            new html5ImgCompress(files[i], {              before: function(file) {                console.log('多張: ' + i + ' 壓縮前...');              },              done: function (file, base64) { // 這里是異步回調,done中i的順序不能保證                console.log('多張: ' + i + ' 壓縮成功...');                //insertImg(file, j);		                insertImg(base64, j++);              },              fail: function(file) {                console.log('多張: ' + i + ' 壓縮失敗...');              },              complate: function(file) {                console.log('多張: ' + i + ' 壓縮完成...');              },              notSupport: function(file) {                notSupport = true;                alert('瀏覽器不支持!');              }            });          })(i);        }      }    })		$(".tijiao").bind("click",function(){		$(this).text("正在上傳,請耐心等候...");					$.Ajax({					type:"POST", 					url:"{:U('Wx/tickling_post')}",					dataType:"text", 					data:{"img":arr,"content":$(".content").val(),'act_id':act_id						},					cache : false,					success:function(msg){ 					 if(msg=="success")					 {						 mui.toast("反饋成功");						 sh=setInterval(skip,2000);						 					 }else					 {						 mui.toast(msg);					 }									},					  					error:function(msg)					{						mui.toast(msg);					}				}); 		    });  });  // html中插入圖片  function insertImg(file, j) {	  	  if(arr.length>=8)	  {		  mui.toast("上傳圖片最大上限為8張");return;	  }    var      img = new Image(),      src;      src = file;	  	  var li=$("<li class='mark_img_li'></li>");	  	            img.onload = function() {     	  $("<img src="+src+" width='100%' height='100%'/>").appendTo(li);	      };$(".tone").before(li);    img.src = src;	arr.push(src);    file = null; // 處理完后記得清緩存  };    </script></html>

后臺控制器:

	public function tickling_post()	{				if(!file_exists("./Uploads/Tickling/".date("Y-m",time()).'/'))		{			mkdir('./Uploads/Tickling/'.date("Y-m",time()).'/',0777);			chmod('./Uploads/Tickling/'.date("Y-m",time()).'/',0777);		}				if(IS_POST)		{			$flag=false;			$str="abcdefghijklmnopqrstuvwxyz";						$img=$_POST["img"];						$data['create_time']=date("Y-m-d H:i:s",time());			$data['contents']=$_POST['content'];			$data['act_id']=$_POST['act_id'];			$count=$this->official_feedback->where(array("act_id"=>$_POST['act_id']))->count();			$imgcount=$this->official_feedback_pics->where(array("act_id"=>$_POST['act_id']))->count();			if($count || $imgcount)			{				echo "您已反饋過無需重復反饋";exit;return;			}			if($this->official_feedback->add($data)!==false)			{				//用戶只評論不上傳圖片				if(count($img)==0)				{					echo "success";exit;				}				$date=date("Y-m",time());				foreach ($img as $v)				{					$num='';					for($i=0;$i<8;$i++)					{					$num.=$str[rand(0, 25)];					}																$url = explode(',',$v);											$imgname=time().$num.'.png';					$path='./Uploads/Tickling/'.$date.'/'.$imgname;				    $result=file_put_contents($path, base64_decode($url[1]));//返回的是字節數				    if($result<=0)				    {				    	$flag=true;				    }				    $data['pic_route']=$path;				    $res=$this->official_feedback_pics->add($data);				    $this->official_activity->where(array("id"=>$_POST['act_id']))->setField("act_status",4);				   				    				}				if($flag)				{					echo "部分圖片上傳失敗";exit;				}else				{					echo "success";exit;				}								}else 			{				echo "反饋失敗";exit;			}					}else 		{			echo "請求方式不正確";exit;		}	}

實現結果:


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
久久躁狠狠躁夜夜爽| 国产69精品99久久久久久宅男| 亚洲精品www| 欧美中文在线免费| 青青在线视频一区二区三区| 色妞一区二区三区| 亚洲va久久久噜噜噜| 亚洲精品久久久久国产| 国产精品久久久久久久av大片| 亚洲成人免费在线视频| 97av在线影院| y97精品国产97久久久久久| 久久亚洲一区二区三区四区五区高| 久久久国产成人精品| 亚洲激情视频网| 国产精品久久久久久久久久新婚| 色七七影院综合| 国产精品久久久久久久久久久久久久| 国产一区二区在线免费| 5566成人精品视频免费| xvideos亚洲| 亚洲春色另类小说| 91精品久久久久久久久久入口| 美乳少妇欧美精品| 疯狂蹂躏欧美一区二区精品| 国产精品亚洲网站| 亚洲电影免费观看高清完整版| 久久国产精品首页| 日本亚洲欧美成人| 久久精品中文字幕| 成人国产精品一区| 日韩电视剧免费观看网站| 91精品国产成人www| 久久久久久久激情视频| 亚洲国产精品悠悠久久琪琪| 亚洲国产日韩欧美综合久久| 日韩精品视频三区| 日韩欧美成人免费视频| 色综合影院在线| 日韩电影大全免费观看2023年上| 亚洲视频在线播放| 中文亚洲视频在线| 亚洲天堂2020| 久久综合久久美利坚合众国| 亚洲欧洲美洲在线综合| 伊人成人开心激情综合网| 91高清免费在线观看| 精品亚洲国产成av人片传媒| 欧美一级淫片videoshd| 亚洲日本欧美日韩高观看| 国产精品看片资源| 午夜精品福利在线观看| 久久九九热免费视频| 亚洲高清一二三区| 日韩精品中文字幕在线| 尤物yw午夜国产精品视频明星| 欧美亚洲另类制服自拍| 久久免费视频网| 国内精品久久久久久久久| 日韩一级黄色av| 51久久精品夜色国产麻豆| 国产一区二区色| 国产日韩在线播放| 97视频在线观看亚洲| 日韩欧美一区二区在线| 成人免费在线视频网站| 亚洲欧美国产一本综合首页| 亚洲日本aⅴ片在线观看香蕉| 96精品久久久久中文字幕| 国产色婷婷国产综合在线理论片a| 精品高清一区二区三区| 国产欧美久久一区二区| 懂色aⅴ精品一区二区三区蜜月| 中日韩美女免费视频网站在线观看| 色av中文字幕一区| 精品国产一区二区三区四区在线观看| 国产精品444| 中文字幕亚洲综合久久| 日韩中文字幕在线精品| 欧美大片大片在线播放| xvideos亚洲| 亚洲成av人影院在线观看| 亚洲男人天天操| 性欧美视频videos6一9| 国产香蕉一区二区三区在线视频| 精品久久国产精品| 色久欧美在线视频观看| 亚洲福利视频久久| 国产精品免费视频xxxx| 亚洲美女av网站| 亚洲aⅴ日韩av电影在线观看| 韩国福利视频一区| 久久久亚洲精品视频| 久久久91精品国产| 91中文精品字幕在线视频| 日韩精品免费综合视频在线播放| 久久av在线看| 亚洲精品久久7777777| 日韩成人在线网站| 日韩在线欧美在线| 久青草国产97香蕉在线视频| 国产精品国产自产拍高清av水多| 久精品免费视频| 国产精品入口夜色视频大尺度| 亚洲丝袜一区在线| 亚洲视频免费一区| 成人做爽爽免费视频| 中文字幕不卡av| 亚洲精品不卡在线| 日韩中文在线中文网在线观看| 高潮白浆女日韩av免费看| 久久艳片www.17c.com| 国语自产精品视频在免费| 91免费看片网站| 精品久久在线播放| 国模吧一区二区| 亚洲欧美日韩网| 91精品国产高清久久久久久91| 美女扒开尿口让男人操亚洲视频网站| 久久久国产精品亚洲一区| 国产成人福利网站| 国内精品美女av在线播放| 欧美日韩中文字幕在线视频| 成人免费自拍视频| 国产精品黄色影片导航在线观看| 日韩中文字幕在线精品| 中文字幕视频在线免费欧美日韩综合在线看| 日韩综合视频在线观看| 91精品国产高清久久久久久久久| 国产视频精品自拍| 91在线视频一区| 国产美女精品免费电影| 久久99青青精品免费观看| 成人精品视频久久久久| 日韩精品免费在线观看| 久久中文字幕一区| 久久精品视频导航| 欧美激情中文字幕乱码免费| 亚洲第一av网站| 久久久久久久久久久网站| 91在线免费观看网站| 久久精品久久久久久| 日韩欧美在线看| 国产成人精品日本亚洲| 在线视频欧美日韩精品| 国产亚洲精品美女久久久| 中文在线资源观看视频网站免费不卡| 国产精品视频精品| 欧美亚洲伦理www| 欧美成人精品三级在线观看| 亚洲性日韩精品一区二区| 日韩av在线网站| 久久久久久久一区二区| 欧美色videos| 国产精品看片资源| 欧美国产日韩一区二区在线观看| 日韩精品在线免费观看| 亚洲aaaaaa| 日韩久久精品成人| 久久综合88中文色鬼| 精品久久久久久久久中文字幕| 成人午夜在线观看| 色777狠狠综合秋免鲁丝| 久久理论片午夜琪琪电影网|