前幾天工作中要做這樣一個功能,有八百多個系統 生成的會員;給這八百多個系統會員上傳圖片;然后把圖片名放入數據庫。
第一步:第一步肯定是首先把圖片上傳到對應的圖片目錄下,直接用框架中已經有的上傳類:
<?php try { $upload=new Upload(); $upload->set_ext(array('zip')); $path='目錄名'; if ( ! Io::mkdir($path)) // 創建目錄 { throw new Exception("無法創建文件上傳目錄:$path"); } $upload->set_path($path); if(!$upload->is_allow_ext($_FILES['files']['name'])) { $this->show_message('必須zip格式數據', '0', NULL, TRUE); } $result=$upload->save($_FILES['files']); $archive = new Archive_Zip(); $archive->set_target($path)->decompress($result['file']); unlink($result['file']);//刪除使用后的zip; $this->show_message('導入成功', '1', array(array('text'=>'返回導入頁面','href'=>'***跳轉的鏈接地址***')),TRUE); }catch(Exception $e){ $this->show_message('圖片導入失敗', '0', NULL, TRUE); } }?>
圖片上傳完成后,就應該把目錄下所有的系統會員圖片名稱取出來,那就得用遍歷了。想想也不用那么麻煩了,php自帶函數glob();
glob() 函數返回匹配指定模式的文件名或目錄。
該函數返回一個包含有匹配文件 / 目錄的數組。如果出錯返回 false。
<?php //獲取目錄所有文件并將結果保存到數組 foreach(glob("目錄名/*") as $d){ $tmp=explode('.',$d); $k=end($tmp); //如果是文件,并且后綴名為jpg png的文件 if(is_file($d)&&in_array($k,array('jpg','png'))){ $files[]=str_replace('******目錄名/','',$d); } }?>
列出所有的圖片后就該把圖片文件名插入數據庫了。
寫個循環就可以了啊。
首先,用SELECT。。。。。。。。查出系統會員,然后計算出系統會員的個數,
<?php //查出系統會員 $member= DB::query(Database::SELECT, " SELECT * FROM 會員表名 WHERE 是否為系統會員 =1; ") ->execute() ->as_array();?>
然后再循環插入數據庫:
<?php for($i=0;$i<count($files);$i++){ $data = array( '圖片字段' => $files[$i], ); DB::update('會員表') ->set($data) ->where('系統會員ID', '=', $member[$i]['系統會員ID']) ->execute(); }?>
OK。就這樣就搞定了。
PHP編程鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。
新聞熱點
疑難解答