示例#1
0
 public function actionImport()
 {
     $full_dir = \Yii::getAlias('@webroot') . "/persontarget";
     $dir = opendir($full_dir);
     while (($file = readdir($dir)) !== false) {
         if ($file !== "." && $file !== "..") {
             $p = pathinfo($file);
             $ftxt = $p['filename'];
             $ftxt = strtolower($ftxt);
             $ext = $p['extension'];
             if (strtolower($ext) == 'txt') {
                 $info = explode("_", $file);
                 $rep = isset($info[1]) ? $info[1] : '';
                 $hos = isset($info[2]) ? $info[2] : '';
                 $model = new SysUploadPersonTarget();
                 $model->file_name = $file;
                 $transaction = \Yii::$app->db->beginTransaction();
                 try {
                     $sql = "LOAD DATA LOCAL INFILE '{$full_dir}/{$file}'";
                     $sql .= " REPLACE INTO TABLE person_target";
                     $sql .= " FIELDS TERMINATED BY '|'  LINES TERMINATED BY '\r\n' IGNORE 1 LINES";
                     $sql .= " SET rep_year='{$rep}'";
                     $count = \Yii::$app->db->createCommand($sql)->execute();
                     $transaction->commit();
                     $model->note1 = substr($hos, 0, 5);
                     $model->note2 = strval($count);
                     $model->note3 = substr($rep, 0, 4);
                     $model->upload_date = date('Ymd');
                     $model->upload_time = date('His');
                     $model->save();
                     echo "Import {$file} Success!\r\n<br>";
                 } catch (Exception $e) {
                     $transaction->rollBack();
                     echo $e->message();
                 }
             }
         }
     }
     closedir($dir);
     $dir = opendir($full_dir);
     while (($file = readdir($dir)) !== false) {
         if ($file !== "." && $file !== "..") {
             if ($file !== "." && $file !== "..") {
                 unlink("{$full_dir}/{$file}");
             }
         }
     }
 }