婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > php處理多圖上傳壓縮代碼功能

php處理多圖上傳壓縮代碼功能

熱門標簽:沈陽人工智能電銷機器人公司 哈爾濱400電話辦理到易號網 智能外呼電銷系統 高識別電銷機器人 電銷機器人-快迭智能 合肥外呼系統app 寶安400電話辦理 h5 地圖標注 拉薩打電話機器人

網上看了一些資料,關于處理圖片壓縮的,找到的大部分是單圖壓縮的,要么是單前端或者后端的,所以就自己整了下前后端壓縮,并支持多圖的壓縮圖片實例。代碼有點多,直接復制到編輯器看會比較清楚

1、先創建的一個簡單的上傳頁面upload.php。先通過前端代碼壓縮圖片,直接上代碼

!DOCTYPE html>
html>
head>
  meta charset="UTF-8">
  meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, minimum-scale=1, user-scalable=no, minimal-ui">
  title>實名驗證/title>
  script type="text/javascript">
    /*
    三個參數
    file:一個是文件(類型是圖片格式),
    w:一個是文件壓縮的后寬度,寬度越小,字節越小
    objDiv:一個是容器或者回調函數
    photoCompress()
     */
    function photoCompress(file,w,objDiv){
      var ready=new FileReader();
      /*開始讀取指定的Blob對象或File對象中的內容. 當讀取操作完成時,readyState屬性的值會成為DONE,如果設置了onloadend事件處理程序,則調用之.同時,result屬性中將包含一個data: URL格式的字符串以表示所讀取文件的內容.*/
      ready.readAsDataURL(file);
      ready.onload=function(){
        var re=this.result;
        canvasDataURL(re,w,objDiv)
      }
    }
    function canvasDataURL(path, obj, callback){
      var img = new Image();
      img.src = path;
      img.onload = function(){
        var that = this;
        // 默認按比例壓縮
        var w = that.width,
          h = that.height,
          scale = w / h;
        w = obj.width || w;
        h = obj.height || (w / scale);
        var quality = 0.7; // 默認圖片質量為0.7
        //生成canvas
        var canvas = document.createElement('canvas');
        var ctx = canvas.getContext('2d');
        // 創建屬性節點
        var anw = document.createAttribute("width");
        anw.nodeValue = w;
        var anh = document.createAttribute("height");
        anh.nodeValue = h;
        canvas.setAttributeNode(anw);
        canvas.setAttributeNode(anh);
        ctx.drawImage(that, 0, 0, w, h);
        // 圖像質量
        if(obj.quality  obj.quality = 1  obj.quality > 0){
          quality = obj.quality;
        }
        // quality值越小,所繪制出的圖像越模糊
        var base64 = canvas.toDataURL('image/jpeg', quality);
        // 回調函數返回base64的值
        callback(base64);
      }
    }
    /**
     * 將以base64的圖片url數據轉換為Blob
     * @param urlData
     * 用url方式表示的base64圖片數據
     */
    function convertBase64UrlToBlob(urlData){
      var arr = urlData.split(','), mime = arr[0].match(/:(.*?);/)[1],
        bstr = atob(arr[1]), n = bstr.length, u8arr = new Uint8Array(n);
      while(n--){
        u8arr[n] = bstr.charCodeAt(n);
      }
      return new Blob([u8arr], {type:mime});
    }
    var xhr;
    //上傳文件方法
    function uploadClick() {
      document.getElementsByClassName("uploadbtn")[0].value = '上傳中...';
      document.getElementsByClassName("uploadbtn")[0].disabled=true; 
      var obj = document.getElementsByClassName("myfile");
      for(var i=0;i2;i++){
        UploadFile(obj[i].files[0],'file'+i);
      }
    }
    function UploadFile(fileObj,filed){
      var shopid = document.getElementById('shopid').value;
      var adminid = document.getElementById('adminid').value;
      var url = "newshimingupload.php"; // 接收上傳文件的后臺地址 
      var form = new FormData(); // FormData 對象
      if(fileObj.size/1024 > 100) { //大于100k,進行壓縮上傳
        photoCompress(fileObj, {
          quality: 0.2
        }, function(base64Codes){
          //console.log("壓縮后:" + base.length / 1024 + " " + base);
          var bl = convertBase64UrlToBlob(base64Codes);
          form.append("file", bl, "file_"+Date.parse(new Date())+".jpg"); // 文件對象
          form.append("shopid", shopid); // 文件對象
          form.append("adminid", adminid); // 文件對象
          form.append("filed", filed); // 文件對象
          xhr = new XMLHttpRequest(); // XMLHttpRequest 對象
          xhr.open("post", url, false); //post方式,url為服務器請求地址,true 該參數規定請求是否異步處理。
          xhr.onload = uploadComplete; //請求完成
          xhr.onerror = uploadFailed; //請求失敗
          // xhr.upload.onprogress = progressFunction;//【上傳進度調用方法實現】
          xhr.upload.onloadstart = function(){//上傳開始執行方法
            ot = new Date().getTime();  //設置上傳開始時間
            oloaded = 0;//設置上傳開始時,以上傳的文件大小為0
          };
          xhr.send(form); //開始上傳,發送form數據
        });
      }else{ //小于等于1M 原圖上傳
        form.append("file", fileObj); // 文件對象
        form.append("shopid", shopid); // 文件對象
        form.append("adminid", adminid); // 文件對象
        form.append("filed", filed); // 文件對象
        xhr = new XMLHttpRequest(); // XMLHttpRequest 對象
        xhr.open("post", url, false); //post方式,url為服務器請求地址,true 該參數規定請求是否異步處理。
        xhr.onload = uploadComplete; //請求完成
        xhr.onerror = uploadFailed; //請求失敗
        xhr.upload.onloadstart = function(){//上傳開始執行方法
          ot = new Date().getTime();  //設置上傳開始時間
          oloaded = 0;//設置上傳開始時,以上傳的文件大小為0
        };
        xhr.send(form); //開始上傳,發送form數據
      }
    }
    //上傳成功響應
    function uploadComplete(evt) {
      //服務斷接收完文件返回的結果
      var data = JSON.parse(evt.target.responseText);
      console.log(data);
      if(data.status){
        alert(data.msg);
        if(data.msg == '門店照上傳成功'){
          window.location.href = "/dd_admin/index.php";
        }
      }
    }
    //上傳失敗
    function uploadFailed(evt) {
      alert("網絡不穩定,請重新上傳!");
    }
  /script>
/head>
body>
  style type="text/css">
    .main{text-align: center;padding-top: 50px;}
    .main .myfile{margin-bottom: 15px;}
  /style>
div class="main">
  營業執照:
  input type="file" class="myfile" id="file1" name="file1" accept="image/x-png, image/jpg, image/jpeg, image/gif"/>br>
  門店照:
  input type="file" class="myfile" id="file2" name="file2" accept="image/x-png, image/jpg, image/jpeg, image/gif"/>br>
  input type="hidden" id="shopid" name="shopid" value="?php echo $_GET['shopid']; ?>" maxlength="15">
  input type="hidden" id="adminid" name="adminid" value="?php echo $_GET['adminid']; ?>" maxlength="15">
  input style="margin-top: 25px;" class="uploadbtn" type="button" onclick="uploadClick()" value="上傳" />br>
/div>
/body>
/html>
2、前端圖片壓縮后,請求到自定義的接口upload_deal.php.代碼如下
?php
require_once('public_func.php');
  actionUpload('uploads/','file'); //參數分別代表圖片存儲的路徑和上傳的文件名
}
3、在第二部引入public_func.php,這塊代碼主要是對后端處理圖片壓縮
function actionUpload($path = '/uploads/',$filename='myFile')
  {
    // $path = 'uploads/';  //圖片存放根目錄 根據自己項目路徑而定
    $file = $_FILES[$filename]['name'];
    $folder = $path.date('Ymd')."/";
    $pre = rand(999,9999).time();
    $ext = strrchr($file,'.');
    $newName = $pre.$ext;
    $out = array(
      'msg'=>'',
      'status'=>'error',
      'img_url'=>''
    );
    if(!is_dir($folder))
    {
      if(!mkdir($folder, 0777, true)){
        $out['msg'] = '圖片目錄創建失敗!';
        echo json_encode($out);
        exit;
      }
    }
    $im = $_FILES[$filename]['tmp_name']; //上傳圖片資源
    $maxwidth="1056"; //設置圖片的最大寬度
    $maxheight="500"; //設置圖片的最大高度
    $imgname = $folder.$newName; //圖片存放路徑 根據自己圖片路徑而定
    $filetype=$_FILES[$filename]['type'];//圖片類型
    $result = thumbImage($im,$maxwidth,$maxheight,$imgname,$filetype);
    if($result){
      $out['msg'] = '圖片上傳成功';
      $out['status'] = 'success';
      $out['img_url'] = $folder.$newName;
    }else{
      $out['msg'] = '圖片上傳失敗';
    }
    return json_encode($out);
    exit;
  }
  //壓縮圖片
  function thumbImage($im,$maxwidth,$maxheight,$name,$filetype)
  {
    switch ($filetype) {   
      case 'image/pjpeg':   
      case 'image/jpeg':   
        $im = imagecreatefromjpeg($im);  //PHP圖片處理系統函數
        break;   
      case 'image/gif':   
        $im = imagecreatefromgif($im);  
        break;   
      case 'image/png':   
        $im = imagecreatefrompng($im);  
        break;
      case 'image/wbmp':   
        $im = imagecreatefromwbmp($im);  
        break;       
    } 
    $resizewidth_tag = $resizeheight_tag = false;
    $pic_width = imagesx($im);
    $pic_height = imagesy($im);
    if(($maxwidth  $pic_width > $maxwidth) || ($maxheight  $pic_height > $maxheight))
    {
  $resizewidth_tag = $resizeheight_tag = false;
      if($maxwidth  $pic_width>$maxwidth)
      {
        $widthratio = $maxwidth / $pic_width;
        $resizewidth_tag = true;
      }
      if($maxheight  $pic_height>$maxheight)
      {
        $heightratio = $maxheight / $pic_height;
        $resizeheight_tag = true;
      }
      if($resizewidth_tag  $resizeheight_tag)
      {
        if($widthratio  $heightratio)
         $ratio = $widthratio;
        else
         $ratio = $heightratio;
      }
      if($resizewidth_tag  !$resizeheight_tag)
      $ratio = $widthratio;
      if($resizeheight_tag  !$resizewidth_tag)
      $ratio = $heightratio;
      $newwidth = $pic_width * $ratio;
      $newheight = $pic_height * $ratio;
      if(function_exists("imagecopyresampled"))
      {
        $newim = imagecreatetruecolor($newwidth,$newheight);//PHP圖片處理系統函數
        imagecopyresampled($newim,$im,0,0,0,0,$newwidth,$newheight,$pic_width,$pic_height);//PHP圖片處理系統函數
      }
      else
      {
        $newim = imagecreate($newwidth,$newheight);
        imagecopyresized($newim,$im,0,0,0,0,$newwidth,$newheight,$pic_width,$pic_height);
      }
      switch ($filetype) {   
        case 'image/pjpeg' :   
        case 'image/jpeg' :   
          $result = imagejpeg($newim,$name);  
          break;   
        case 'image/gif' :   
          $result = imagegif($newim,$name);  
          break;   
        case 'image/png' :   
          $result = imagepng($newim,$name);  
          break;
        case 'image/wbmp' :   
          $result = imagewbmp($newim,$name);  
          break;       
      } 
      imagedestroy($newim);
    }
    else
    {
      switch ($filetype) {   
        case 'image/pjpeg' :   
        case 'image/jpeg' :   
          $result = imagejpeg($im,$name);  
          break;   
        case 'image/gif' :   
          $result = imagegif($im,$name);  
          break;   
        case 'image/png' :   
          $result = imagepng($im,$name);  
          break;
        case 'image/wbmp' :   
          $result = imagewbmp($im,$name);  
          break;       
      }
    }
    return $result; 
  }

總結

以上所述是小編給大家介紹的php處理多圖上傳壓縮代碼功能,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網站的支持!

您可能感興趣的文章:
  • ajax上傳圖片到PHP并壓縮圖片顯示的方法
  • php上傳圖片并壓縮的實現方法
  • PHP實現圖片上傳并壓縮

標簽:泰州 張家口 山東 林芝 巴中 成都 梅州 威海

巨人網絡通訊聲明:本文標題《php處理多圖上傳壓縮代碼功能》,本文關鍵詞  php,處理,多圖,上傳,壓縮,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《php處理多圖上傳壓縮代碼功能》相關的同類信息!
  • 本頁收集關于php處理多圖上傳壓縮代碼功能的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    精品毛片乱码1区2区3区| 91丝袜国产在线播放| 亚洲aaa精品| 久久午夜色播影院免费高清| 2023国产精品| 精品午夜一区二区三区在线观看| 制服丝袜成人动漫| 亚洲日本在线看| 91麻豆文化传媒在线观看| 日韩视频一区在线观看| 偷偷要91色婷婷| 4hu四虎永久在线影院成人| 亚洲中国最大av网站| 99精品在线免费| 亚洲影院理伦片| 91精品国产91久久综合桃花| 另类小说欧美激情| 国产精品免费av| 欧美mv和日韩mv的网站| 欧美精品视频www在线观看| 成人av高清在线| 欧美老人xxxx18| 在线观看视频91| 国产调教视频一区| 中文成人av在线| 另类专区欧美蜜桃臀第一页| 亚洲欧美日韩电影| 亚洲国产精品久久一线不卡| 亚洲1区2区3区4区| 免费不卡在线观看| 国产高清在线精品| 一本大道综合伊人精品热热 | 国产精品久久久久久久久免费相片| 免费精品99久久国产综合精品| 亚洲国产成人porn| 亚洲制服丝袜av| 成人动漫一区二区三区| 日韩精品专区在线| 亚洲综合在线免费观看| 无吗不卡中文字幕| 亚洲欧洲日韩在线| 国产成人在线看| 亚洲欧美日韩久久| 激情久久久久久久久久久久久久久久| 欧美丰满一区二区免费视频 | 蜜乳av一区二区| 99riav久久精品riav| 一区二区三区在线不卡| 欧美国产一区二区在线观看 | 久久久久国产精品麻豆| 欧美日韩视频在线一区二区| 久久亚洲综合色一区二区三区 | 亚洲精品ww久久久久久p站| 亚洲欧美日本在线| 国内精品久久久久影院薰衣草 | 亚洲动漫第一页| 亚洲成av人片| 国产一区三区三区| 欧美麻豆精品久久久久久| 欧美一级欧美三级在线观看| 免费看欧美女人艹b| 欧美一区在线视频| 成人欧美一区二区三区黑人麻豆 | 亚洲影视在线观看| 国产精品国产a级| 亚洲大片精品永久免费| 韩国三级中文字幕hd久久精品| 精品亚洲国产成人av制服丝袜| 在线视频国内自拍亚洲视频| 中文字幕国产一区| 99re视频这里只有精品| 成人app在线| 日韩丝袜情趣美女图片| 亚洲激情图片一区| 久久精品国产精品亚洲精品| 国产精品免费看片| 日韩视频免费直播| 日本伊人色综合网| 亚洲精品一区二区三区影院| 亚洲欧洲另类国产综合| 天天综合色天天综合色h| 久久成人麻豆午夜电影| 欧美日韩久久久| 日韩中文字幕1| 国产精品国产三级国产| 国产校园另类小说区| 欧美日韩另类一区| 国产一区高清在线| 国产成人亚洲综合a∨婷婷| 在线看国产一区二区| 欧美亚洲综合一区| 国产视频不卡一区| 精品一二三四区| 欧美日韩不卡一区| 亚洲v中文字幕| 欧美天堂一区二区三区| 亚洲已满18点击进入久久| 972aa.com艺术欧美| 在线日韩一区二区| 亚洲综合一区二区三区| 欧美在线一区二区| 日本亚洲天堂网| 7777精品伊人久久久大香线蕉的 | 一区二区三区欧美久久| 精品久久一二三区| 日本一区二区久久| 久久亚洲影视婷婷| 日韩西西人体444www| 日韩一区二区免费视频| 精品免费视频一区二区| 亚洲国产高清不卡| 一区二区欧美视频| 成人激情av网| 色8久久精品久久久久久蜜| 欧美精品欧美精品系列| 欧美成人精品二区三区99精品| 亚洲444eee在线观看| 91精品国产综合久久精品app | 91精品福利视频| 成人福利电影精品一区二区在线观看| 亚洲国产精品ⅴa在线观看| 国产欧美一区二区三区在线老狼| 久久久久久久一区| 午夜av电影一区| 人人精品人人爱| 91免费精品国自产拍在线不卡| 337p亚洲精品色噜噜噜| 亚洲综合一二三区| 日本韩国精品一区二区在线观看| 欧美成人欧美edvon| caoporn国产一区二区| 麻豆精品一区二区三区| 亚洲va韩国va欧美va精品| 亚洲欧洲99久久| 亚洲黄色在线视频| 免费看欧美美女黄的网站| 另类小说图片综合网| 日韩电影在线观看一区| 男女性色大片免费观看一区二区 | 日韩av高清在线观看| 午夜精品成人在线视频| 中文字幕在线不卡国产视频| 午夜精品视频一区| 秋霞成人午夜伦在线观看| 亚洲国产欧美在线人成| 日韩精品一二三四| 五月天一区二区| 极品少妇xxxx精品少妇偷拍| 懂色av一区二区三区免费看| 成人黄页在线观看| 91久久久免费一区二区| 亚洲精品一线二线三线| 国产精品久久久久一区二区三区 | 欧美激情一区二区三区全黄| 中文字幕日韩av资源站| 亚洲国产精品嫩草影院| 精东粉嫩av免费一区二区三区| 99久久夜色精品国产网站| 中文字幕日韩av资源站| 另类的小说在线视频另类成人小视频在线 | 国产·精品毛片| 欧美久久久久久久久久| 国产精品灌醉下药二区| 久久99精品国产麻豆婷婷 | 日本亚洲天堂网| 成人av第一页| 国产欧美一区二区精品秋霞影院| 亚洲视频一区在线| 午夜精品福利在线| 91福利精品第一导航| 亚洲婷婷综合色高清在线| 国产福利91精品一区| 国产亚洲一区字幕| 在线免费观看不卡av| 欧美在线色视频| 亚洲风情在线资源站| 欧美日韩亚洲综合| 欧美日韩国产电影| 99久久伊人久久99| 欧美成人猛片aaaaaaa| 久久电影网站中文字幕| 日韩免费高清电影| 波多野洁衣一区| 精品在线播放免费| 久久久久久久久久久99999| 成人激情黄色小说| 午夜精品免费在线观看| 精品99一区二区三区| www.日韩精品| 亚洲精品免费电影| 中文字幕一区视频| 欧美一区二区三区四区高清| 91影院在线观看| 久久国产综合精品| 国产视频911| 色一情一伦一子一伦一区| 免费观看在线色综合| 国产精品伦理一区二区| 日韩限制级电影在线观看| 91在线观看视频|