1. 程式人生 > >ThinkPHP 文件上傳處理

ThinkPHP 文件上傳處理

不可 info 字段名 文件內容 sta span comm array 無法

//上傳文件
    public function uploadFile(){
        $upload  = new \Think\Upload();
        $savename = date(‘Y-m-d‘).‘-‘.time();//使用date(‘Y-m-d H:i:s‘)作為文件名,因含有冒號,文件就無法保存了,文件名不可含有冒號:
        $upload ->exts = array(‘xls‘,‘xlsx‘);
        $upload ->rootPath = ‘Public/sxwx/policytracking/‘;
        $upload
->autoSub = false;//是否開啟子目錄進行保存,默認開啟 $upload ->saveName = $savename; $info = $upload ->upload(); if (!$info) { $this->backMsg(‘0‘,‘文件格式有誤‘); } //導入成功 vendor("PHPExcel.PHPExcel"); $excel = new \PHPExcel(); vendor("PHPExcel.Classes.PHPExcel.Reader.Excel5"); vendor(
"PHPExcel.Classes.PHPExcel.Reader.Excel2007"); $file = ‘Public/sxwx/policytracking/‘.$info[‘excel‘][‘savename‘]; $phpReader = new \PHPExcel_Reader_Excel5();//xls格式的表格 $ext = $info[‘excel‘][‘ext‘];//獲取文件的後綴名,傳過來的字段名為excel if ($ext==‘xlsx‘) { $phpReader = new
\PHPExcel_Reader_Excel2007();//xlsx格式的表格 } $objPHPExcel = $phpReader ->load($file);//讀取文件內容 /*表格格式 投保單號 保單狀態 狀態原因 回復處理方式 新契約下發時間 處理完成時間 業務員姓名 */ $sheet = $objPHPExcel->getSheet(0); // 取得總行數 $highestRow = $sheet->getHighestRow(); // 取得總列數 $highestColumn = $sheet->getHighestColumn(); //循環讀取excel文件,讀取一條,插入一條 $data=array(); //從第三行開始讀取數據,第一行名字,第二行字段名 for($j=3;$j<=$highestRow;$j++){ //從A列讀取數據 for($k=‘A‘;$k<=$highestColumn;$k++){ // 讀取單元格 $cellVal = $objPHPExcel->getActiveSheet()->getCell("$k$j")->getValue(); $data[$j][]=$cellVal; } } $stateTab = M(‘sxwx_policy_state‘); $stateTab ->startTrans(); foreach ($data as $key => $value) { $add[‘toubao_num‘] = $value[0]; $add[‘policy_state‘] = $value[1]; $add[‘state_reason‘] = $value[2]; $add[‘response_type‘] = $value[3]; $add[‘assign_time‘] = gmdate(‘Y-m-d‘,intval(($value[4]-25569)*3600*24));//excel讀取日期時間有問題,轉化為日期 $add[‘completed_time‘] = gmdate(‘Y-m-d‘,intval(($value[5]-25569)*3600*24));//excel讀取日期時間有問題,轉化為日期 $add[‘record_name‘] = $value[6]; $exist = $stateTab ->where($add) ->find(); if (!$exist) { $res[] = $stateTab ->add($add,array(),true); } } foreach ($res as $key => $value) { if ($value === false) { $stateTab ->rollback(); } } $stateTab ->commit(); $this -> backMsg(‘1‘,‘數據批量導入成功‘); } private function backMsg($code,$desc){ $ret[‘code‘] = $cdoe; $ret[‘desc‘] = $desc; $this ->ajaxReturn($ret); }
$add[‘assign_time‘] = gmdate(‘Y-m-d‘,intval(($value[4]-25569)*3600*24));//excel讀取日期時間有問題,轉化為日期
$add[‘completed_time‘] = gmdate(‘Y-m-d‘,intval(($value[5]-25569)*3600*24));//excel讀取日期時間有問題,轉化為日期

ThinkPHP 文件上傳處理