微信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'=>'
$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 地址
}
}
管理組的憑證金鑰 |