Bläddra i källkod

ftp文件压缩

git 2 år sedan
förälder
incheckning
a67f405d3c

+ 63 - 16
Home/Lib/Action/CronAction.class.php

@@ -8,31 +8,78 @@ class CronAction extends Action {
 
  
 	public  function searchFile2Ftp(  ){
-		while(true){
-			$dir = C('FTP_LOCAL_DIR');
-			$targetDir = C('FTP_SERVER_DIR');
-			$config = C('FTP_CONFIG');
-		
+		$dir = C('FTP_LOCAL_DIR');
+		$targetDir = C('FTP_SERVER_DIR');
+		$config = C('FTP_CONFIG');
+		while (true) {
 			$res = scanTargetFile($dir, 'md5');
 			$files = explode(';', $res);
 			array_pop($files);
-			foreach($files as $v){
+			foreach ($files as $v) {
 				$path_parts = pathinfo($v);
-				$locDat = $path_parts['dirname']. '/' . $path_parts['filename'].'.dat';
-				$tagetDat = $targetDir.'/'. $path_parts['filename'].'.dat';
-				echo $tagetDat.PHP_EOL;
-				$datRes = Zmcoding\FtpFile::getInstance($config)->up_file($locDat, $tagetDat);
-				if($datRes){
-					$md5Res = Zmcoding\FtpFile::getInstance($config)->up_file($v,  $targetDir.'/'. $path_parts['basename']);//md5文件
-					if($md5Res){
-						debug_log('upload_info',json_encode($targetDir.'/'. $path_parts['basename'],JSON_UNESCAPED_UNICODE));
+				$zip = $this->zip($path_parts['filename'], $path_parts['dirname']);
+				if ($zip) {//压缩完成
+					$tagetDat = $targetDir . '/' . $path_parts['filename'] . '.zip';
+					echo $tagetDat . PHP_EOL;
+					//删除本地dat文件
+					@unlink($path_parts['dirname'] . '/' . $path_parts['filename'] . '.dat');
+					$datRes = Zmcoding\FtpFile::getInstance($config)->up_file($zip, $tagetDat);
+					if ($datRes) {
+						$md5Res = Zmcoding\FtpFile::getInstance($config)->up_file($v,  $targetDir . '/' . $path_parts['basename']); //md5文件
+						if ($md5Res) {
+							debug_log('upload_info', json_encode($targetDir . '/' . $path_parts['basename'], JSON_UNESCAPED_UNICODE));
+						}
+						debug_log('upload_info', json_encode($tagetDat, JSON_UNESCAPED_UNICODE));
 					}
-					debug_log('upload_info',json_encode($tagetDat,JSON_UNESCAPED_UNICODE));
 				}
 			}
-			sleep(3);
+			// sleep(3);
 		}
 	}
 	
+ 
+	public  function zip( $name, $path ){
+		//压缩
+		if (!file_exists($path)) {
+			return false;
+		}
+		$current_dir = opendir($path);
+		while (($file = readdir($current_dir)) !== false) {
+			$sub_dir = $path . DIRECTORY_SEPARATOR . $file;
+			if ($file == '.' || $file == '..') {
+				continue;
+			}
+			if (is_file($sub_dir)) {    //如果是.dat文件,进行赋值
+				$pathinfo = pathinfo($file);
+				if ($pathinfo['extension'] == 'dat') {
+					$files[] = $file;
+				}
+			}
+		}
+		if (empty($files)) {
+			return false;
+		}
+		// var_dump($files);exit;
+		$zip_filename = $path . '/' . $name . '.zip';
+		@unlink($zip_filename);
+		if (!file_exists($zip_filename)) {
+			touch($zip_filename);
+			$zip = new \ZipArchive();
+			$ret = $zip->open($zip_filename, \ZipArchive::OVERWRITE);
+			if ($ret !== true) {
+				return false;
+			} else {
+				if (!empty($files)) {
+					foreach ($files as $file) {
+						$zip->addFile($path . '/' . $file, $file);
+						// @unlink($path . '/' . $name . '.dat');
+					}
+				}
+				$zip->close();
+			}
+		}
+		return $zip_filename;
+	}
+	
 
 }

+ 9 - 10
Home/Lib/Action/RouteRfidKafkaAction.class.php

@@ -12,7 +12,7 @@ class RouteRfidKafkaAction extends Action {
 		//var_dump($data);
 		
 		if($data['methond']=='login'){
-			return array('success'=>false,'message'=>'addRfidDataToNingbo failed,methond  login!');
+			return array('success'=>true,'message'=>'addRfidDataToNingbo failed,methond  login!');
 		}
 		
 		$RF_ID=strtoupper($data['mac']);
@@ -20,12 +20,12 @@ class RouteRfidKafkaAction extends Action {
 		$station_cond=array('mac'=>$RF_ID);
 		$device_name=M('stations')->where($station_cond)->getField('name');
 		if(!$device_name){
-			return array('success'=>false,'message'=>'addRfidDataToNingbo failed,station not existed!');
+			return array('success'=>true,'message'=>'addRfidDataToNingbo failed,station not existed!');
 		}
 		if($data['methond']=='heartbeat'){
 			if( ($data['time']<(time()-3600) ) || ($data['time']>(time()+3600) ) ){
 				$this->debug_log( 'heartbeat_abnormal', $data );
-				return array('success'=>false,'message'=>'heartbeat time abnormal !');
+				return array('success'=>true,'message'=>'heartbeat time abnormal !');
 			}
 			$save_data=array(
 					'online_time'=>date('Y-m-d H:i:s',$onlinetime)
@@ -34,10 +34,10 @@ class RouteRfidKafkaAction extends Action {
 		}
 		
 		if($data['methond']!='track'){
-			return array('success'=>false,'message'=>'addRfidDataToNingbo failed,methond not track!');
+			return array('success'=>true,'message'=>'addRfidDataToNingbo failed,methond not track!');
 		}
 		if(!$data['labels']){
-			return array('success'=>false,'message'=>'addRfidDataToNingbo failed,labels not existed!');
+			return array('success'=>true,'message'=>'addRfidDataToNingbo failed,labels not existed!');
 		}
 		
 		
@@ -74,9 +74,6 @@ class RouteRfidKafkaAction extends Action {
 			$stid = oci_parse($conn, $sql);
 			
 		   $r = oci_execute($stid);
-			
-			echo 111;
-			throw new \Exception('insert data to oracle false');
 			if(!$r){
 				$this->debug_log( 'insert_oracle_error', $val );
 				return array('success'=>false,'message'=>'addRfidDataToNingbo failed,insert_oracle_error!');
@@ -207,21 +204,23 @@ class RouteRfidKafkaAction extends Action {
 		while (true) {
 			//var_dump($conn);
 		    $message = $consumer->consume(120*1000);
+		
 		    switch ($message->err) {
 		        case RD_KAFKA_RESP_ERR_NO_ERROR:
+						
 						 $data = json_decode($message->payload,true);
 						 if( $data ){
 							
 							$res=$this->addRfidDataToNingbo($data,$conn);
 							if(!$res['success']){
-								echo $res['message'].PHP_EOL;
+								throw new \Exception('insert data to oracle false');
 							}
 		
 							 //$this->addRfidDataToRenlian($data);
 						 }
 		            break;
 		        case RD_KAFKA_RESP_ERR__PARTITION_EOF:
-		            echo "No more messages; will wait for more\n";
+		            //echo "No more messages; will wait for more\n";
 		            break;
 		        case RD_KAFKA_RESP_ERR__TIMED_OUT:
 		            echo "Timed out\n";

+ 1 - 1
Home/Lib/Action/V1Action.class.php

@@ -115,7 +115,7 @@ class V1Action extends Action {
 					}
 				break;
 				case RD_KAFKA_RESP_ERR__PARTITION_EOF:
-				echo "No more messages; will wait for more".PHP_EOL;
+				//echo "No more messages; will wait for more".PHP_EOL;
 				break;
 				case RD_KAFKA_RESP_ERR__TIMED_OUT:
 					$fileName = $localDir . '/HC_' . $createTime . '.dat';