1. 程式人生 > >微信jssdk多圖片上傳下載到伺服器

微信jssdk多圖片上傳下載到伺服器

//前臺程式碼

     $(function (){
     paizhao();//開啟頁面直接呼叫該函式
     });
        function paizhao(t) {
             if (t != undefined){//開始時 t 為undefined  呼叫遞迴時 t 才為真
                 
                for (var i = 0; i < t.length; i++)//迴圈給 mid  賦值
                {
                    if (i < t.length - 1)
                    {
                        mid = mid + t[i] + ",";
                        
                    } else {
                        mid = mid + t[i];
                    }
                }
                $('#vote_pic').val(mid); // 寫入上傳成功的圖片
                return paizhao;
            }
             /*  選    擇    圖    片  */
         $("#upload").on("click", function () {
            wx.chooseImage({//選著檔案或者進行拍照
                success: function (res) {
                localIds = res.localIds;//把返回圖片的伺服器端ID存入localIds
               
                    syncUpload(localIds);//同步上傳 多張圖片
                }
            });
         }); 
         /*  上  傳  圖   片  */
             var syncUpload = function (localIds) {
                var localId = localIds.pop();
                wx.uploadImage({
                    localId:localId,
                    success: function (res) {
                        serverId.push(res.serverId);
                        //其他對serverId做處理的程式碼
                        if (localIds.length > 0) {
                            syncUpload(localIds);
                        } else {
                            paizhao(serverId);//再次呼叫遞迴上傳
                        }
                    }
                });
            }; 
        };    

//後臺程式碼

if(IS_POST){
$_POST['type'] = $_POST['album'];
$pic_id = $_POST['vote_pic'];
$pic_id = explode(",",$pic_id);//把傳過來的圖片地址 分割
$pic_arr = array();
foreach ($pic_id as $k => $v){//迴圈 把圖片下載到本地伺服器
    $pic_arr = $v;
$return = array();
$path = './Image/Photos';//定義儲存路徑
$dir = realpath($path);//為方便管理圖片 儲存圖片時 已時間作一層目錄作區分
$tardir=$dir.'/'.date('Y_m_d');//定義資料夾名稱
if(!file_exists($tardir)){//如果資料夾不存在則自動建立
   mkdir($dir.'/'.date('Y_m_d'));
}
$access_token=R('Qyapp/Jsssdk/access_token',array("api"=>'微信企業號的corpID','secret'=>'

corpsecret管理主的憑證鑰'));//獲取access_token值
$token=$access_token['access_token'];
//根據微信JS介面上傳了圖片,會返回上面寫的images.serverId(即media_id),填在下面即可
$str = "https://qyapi.weixin.qq.com/cgi-bin/media/get?access_token={$token}&media_id={$pic_arr}";
$ch = curl_init($str);//獲取微信“獲取臨時素材”介面返回來的內容(即剛上傳的圖片)  
$ranfilename=time().rand().".jpg";//定義圖片新名稱
$filename=$path.'/'.date('Y_m_d').'/'.$ranfilename;
$_POST['img_url'] = $filename;
/* 把上傳的圖片更新到主頁 */
$data = array("homepage_img"=>$_POST['img_url']);
$update_homepage = M("Qyphotos_type")->where("id={$_POST['type']}")->save($data);
/* 把資料寫入資料庫 */
$add_photos = M('Qyphotos_img')->add($_POST);
$tarfilename=$tardir."/".$ranfilename;
$fp = fopen($tarfilename, "w");   
curl_setopt($ch, CURLOPT_FILE, $fp);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_exec($ch);
curl_close($ch);
}
fclose($fp);//關閉開啟的資料夾
            if($add_photos != null){
                $this->redirect("list_img?typeid={$_POST['type']}");//重新定義url 地址
            }
}

管理組的憑證金鑰