Heim Backend-Entwicklung PHP-Tutorial php工具类之【zip压缩文件处置类】

php工具类之【zip压缩文件处置类】

Jun 13, 2016 pm 12:04 PM
data file header size

php工具类之【zip压缩文件处理类】

class PHPZip{	private $ctrl_dir = array();        	private $datasec = array(); 	private $old_offset = 0;       	private $eof_ctrl_dir = "\x50\x4b\x05\x06\x00\x00\x00\x00";  		/**         	 * 压缩部分--遍历指定文件夹       	 * @param String $path--文件夹路径	 * @return array--文件夹内容列表	 ****/       	function visitFile($path){		$fileList = array();     		$path = str_replace("\\","/",$path);     		$fdir = dir($path);                    		while(($file = $fdir->read()) !== false){                			if($file == '.' || $file == '..'){ 				continue; 			}                        			$pathSub    = preg_replace("*/{2,}*", "/", $path."/".$file);  // 替换多个反斜杠                			$fileList[] = is_dir($pathSub) ? $pathSub."/" : $pathSub;                			if(is_dir($pathSub)){ 				$this->visitFile($pathSub); 			}            		}            		$fdir->close();            		return $fileList;        	}        	/**	 * 压缩到服务器	 * @param String $dir--需压缩的文件所在目录	 * @param String $saveName--ZIP压缩文件名	 * @return boolean--是否压缩成功	 * */	public function Zip($dir, $saveName){            		if(@!function_exists('gzcompress')){ 			return false; 		}                		ob_end_clean();            		$filelist = $this->visitFile($dir);            		if(count($filelist) == 0){ 			return false; 		}                		foreach($filelist as $file){                			if(!file_exists($file) || !is_file($file)){ 				continue; 			}                                			$fd = fopen($file, "rb");                			$content  = @fread($fd, filesize($file));                			fclose($fd);                						// 1.删除$dir的字符(./folder/file.txt删除./folder/)                			// 2.如果存在/就删除(/file.txt删除/)                			$file = substr($file, strlen($dir));                			if(substr($file, 0, 1) == "\\" || substr($file, 0, 1) == "/"){ 				$file = substr($file, 1); 			}                                			$this->addFile($content, $file);            		}            		$out = $this->file();               		$fp = fopen($saveName, "wb");            		fwrite($fp,$out,strlen($out));            		fclose($fp);  		return true;      	}       	/**	 * 压缩并直接下载	 * @param String $dir--需压缩的文件所在目录	 */	public function ZipAndDownload($dir){            		if(@!function_exists('gzcompress')){ 			return; 		}                		ob_end_clean();            		$filelist = $this->visitFile($dir);            		if(count($filelist) == 0){ return; }                		foreach($filelist as $file){                			if(!file_exists($file) || !is_file($file)){ continue; }                                			$fd       = fopen($file, "rb");                			$content  = @fread($fd, filesize($file));                			fclose($fd);                    						// 1.删除$dir的字符(./folder/file.txt删除./folder/)                			// 2.如果存在/就删除(/file.txt删除/)                			$file = substr($file, strlen($dir));                			if(substr($file, 0, 1) == "\\" || substr($file, 0, 1) == "/"){ 				$file = substr($file, 1); 			}                                			$this->addFile($content, $file);            		}            		$out = $this->file();                		@header('Content-Encoding: none');            		@header('Content-Type: application/zip');            		@header('Content-Disposition: attachment ; filename=Farticle'.date("YmdHis", time()).'.zip');            		@header('Pragma: no-cache');            		@header('Expires: 0');            		print($out);        	} 	// ------------------------------------------------------ //     	// $archive   = new PHPZip();        	// $zipfile   = "ZIP压缩文件名";        	// $savepath  = "解压缩目录名";        	// $zipfile   = $unzipfile;        	// $savepath  = $unziptarget;        	// $array     = $archive->GetZipInnerFilesInfo($zipfile);        	// $filecount = 0;        	// $dircount  = 0;        	// $failfiles = array();        	// set_time_limit(0);  	// 修改为不限制超时时间(默认为30秒)       	// for($i=0; $i<count($array); $i++) {        	//     if($array[$i][folder] == 0){        	//         if($archive->unZip($zipfile, $savepath, $i) > 0){        	//             $filecount++;        	//         }else{        	//             $failfiles[] = $array[$i][filename];        	//         }        	//     }else{        	//         $dircount++;        	//     }        	// }        	// set_time_limit(30);        	// printf("文件夹:%d    解压文件:%d    失败:%d<br>\r\n", $dircount, $filecount, count($failfiles));        	// if(count($failfiles) > 0){        	//    foreach($failfiles as $file){        	//        printf("&middot;%s<br>\r\n", $file);        	//    }        	// }        	// ------------------------------------------------------//       	 public function unZip($zipfile, $to, $index = Array(-1)){            	 	$ok  = 0;            	 	$zip = @fopen($zipfile, 'rb');            	 	if(!$zip){ return(-1); }                        	 	$cdir      = $this->ReadCentralDir($zip, $zipfile);            	 	$pos_entry = $cdir['offset'];                        	 	if(!is_array($index)){ $index = array($index); }            	 	for($i=0; $index[$i]; $i++){                	 		if(intval($index[$i]) != $index[$i] || $index[$i] > $cdir['entries']){                    	 			return(-1);                	 		}            	 	}                        	 	for($i=0; $i<$cdir['entries']; $i++){                	 		@fseek($zip, $pos_entry);                	 		$header          = $this->ReadCentralFileHeaders($zip);                	 		$header['index'] = $i;                	 		$pos_entry       = ftell($zip);                	 		@rewind($zip);                	 		fseek($zip, $header['offset']);                	 		if(in_array("-1", $index) || in_array($i, $index)){                    	 			$stat[$header['filename']] = $this->ExtractFile($header, $to, $zip);                	 		}            	 	}                        	 	fclose($zip);            	 	return $stat;        	 }     	 // ------------------------------------------------------ //        	 // #获取被压缩文件的信息        //        	 // $archive = new PHPZip();        	 // $array = $archive->GetZipInnerFilesInfo(ZIP压缩文件名);        	 // for($i=0; $i<count($array); $i++) {        	 //     printf("<b>&middot;%s</b><br>\r\n", $array[$i][filename]);        	 //     foreach($array[$i] as $key => $value)        	 //         printf("%s => %s<br>\r\n", $key, $value);        	 //     print "\r\n<p>------------------------------------<p>\r\n\r\n";        	 // }        	 // ------------------------------------------------------ //        	 public function GetZipInnerFilesInfo($zipfile){            	 	$zip = @fopen($zipfile, 'rb');            	 	if(!$zip){ return(0); }            	 	$centd = $this->ReadCentralDir($zip, $zipfile);                        	 	@rewind($zip);            	 	@fseek($zip, $centd['offset']);            	 	$ret = array();            	 	for($i=0; $i<$centd['entries']; $i++){                	 		$header          = $this->ReadCentralFileHeaders($zip);                	 		$header['index'] = $i;                	 		$info = array('filename'      => $header['filename'],// 文件名                    	 					'stored_filename' => $header['stored_filename'],            // 压缩后文件名                    	 					'size'            => $header['size'],                       // 大小                    	 					'compressed_size' => $header['compressed_size'],            // 压缩后大小                   	 		            'crc'             => strtoupper(dechex($header['crc'])),    // CRC32                    	 					'mtime'           => date("Y-m-d H:i:s",$header['mtime']),  // 文件修改时间                    	 					'comment'         => $header['comment'],                    // 注释                    	 					'folder'          => ($header['external'] == 0x41FF0010 || $header['external'] == 16) ? 1 : 0,  // 是否为文件夹                    	 					'index'           => $header['index'],                      // 文件索引                    	 					'status'          => $header['status']                      // 状态                	 		);               	 		$ret[] = $info;                	 		unset($header);            	 	}            	 	fclose($zip);            	 	return $ret;        	 }                        	 // ------------------------------------------------------ //        	 // #获取压缩文件的注释        //        	 // $archive = new PHPZip();        	 // echo $archive->GetZipComment(ZIP压缩文件名);        	 // ------------------------------------------------------ //        	 public function GetZipComment($zipfile){            	 	$zip = @fopen($zipfile, 'rb');            	 	if(!$zip){ return(0); }            	 	$centd = $this->ReadCentralDir($zip, $zipfile);            	 	fclose($zip);            	 	return $centd[comment];        	 } 	 	private function unix2DosTime($unixtime = 0){            		$timearray = ($unixtime == 0) ? getdate() : getdate($unixtime);                		if($timearray['year'] < 1980){                			$timearray['year']    = 1980;                			$timearray['mon']     = 1;                			$timearray['mday']    = 1;                			$timearray['hours']   = 0;                			$timearray['minutes'] = 0;                			$timearray['seconds'] = 0;           		}                		return (($timearray['year'] - 1980) << 25)| 				($timearray['mon'] << 21)| 				($timearray['mday'] << 16)| 				($timearray['hours'] << 11)| 				($timearray['minutes'] << 5)| 				($timearray['seconds'] >> 1);        	}                               	private function addFile($data, $filename, $time = 0){            		$filename = str_replace('\\', '/', $filename);                		$dtime    = dechex($this->unix2DosTime($time));            		$hexdtime = '\x'.$dtime[6].$dtime[7]. 					'\x' . $dtime[4] . $dtime[5].					'\x'.$dtime[2].$dtime[3].					'\x'.$dtime[0].$dtime[1];            		eval('$hexdtime = "' . $hexdtime . '";');                		$fr       = "\x50\x4b\x03\x04";            		$fr      .= "\x14\x00";            		$fr      .= "\x00\x00";            		$fr      .= "\x08\x00";            		$fr      .= $hexdtime;            		$unc_len  = strlen($data);            		$crc      = crc32($data);            		$zdata    = gzcompress($data);            		$c_len    = strlen($zdata);            		$zdata    = substr(substr($zdata, 0, strlen($zdata) - 4), 2);            		$fr      .= pack('V', $crc);            		$fr      .= pack('V', $c_len);            		$fr      .= pack('V', $unc_len);            		$fr      .= pack('v', strlen($filename));            		$fr      .= pack('v', 0);            		$fr      .= $filename;                		$fr      .= $zdata;                		$fr      .= pack('V', $crc);            		$fr      .= pack('V', $c_len);            		$fr      .= pack('V', $unc_len);                		$this->datasec[] = $fr;            		$new_offset      = strlen(implode('', $this->datasec));                		$cdrec  = "\x50\x4b\x01\x02";            		$cdrec .= "\x00\x00";            		$cdrec .= "\x14\x00";            		$cdrec .= "\x00\x00";            		$cdrec .= "\x08\x00";            		$cdrec .= $hexdtime;            		$cdrec .= pack('V', $crc);            		$cdrec .= pack('V', $c_len);            		$cdrec .= pack('V', $unc_len);            		$cdrec .= pack('v', strlen($filename) );            		$cdrec .= pack('v', 0 );            		$cdrec .= pack('v', 0 );            		$cdrec .= pack('v', 0 );            		$cdrec .= pack('v', 0 );            		$cdrec .= pack('V', 32 );                		$cdrec .= pack('V', $this->old_offset );            		$this->old_offset = $new_offset;                		$cdrec .= $filename;            		$this->ctrl_dir[] = $cdrec;        	}                        	      	private function file(){            		$data    = implode('', $this->datasec);            		$ctrldir = implode('', $this->ctrl_dir);                		return  $data                   				. $ctrldir                   				. $this->eof_ctrl_dir                   				. pack('v', sizeof($this->ctrl_dir))                   				. pack('v', sizeof($this->ctrl_dir))                   				. pack('V', strlen($ctrldir))                   				. pack('V', strlen($data))                   				. "\x00\x00";        	}                    	                	                                               	/**********************************************************         	 *解压部分       	 *ReadCentralDir($zip, $zipfile)        	 [email&#160;protected] [email&#160;protected]($zipfile, 'rb')打开的        	 [email&#160;protected] $zipfile是zip文件的路径        	 **/       	private function ReadCentralDir($zip, $zipfile){            		$size     = filesize($zipfile);            		$max_size = ($size < 277) ? $size : 277;                        		@fseek($zip, $size - $max_size);            		$pos   = ftell($zip);            		$bytes = 0x00000000;                        		while($pos < $size){                			$byte  = @fread($zip, 1);                			$bytes = ($bytes << 8) | Ord($byte);                			$pos++;			if ('Linux' == PHP_OS && substr(dechex($bytes),-8,8) == '504b0506') { break; }			if($bytes == 0x504b0506){ break; }            		}                        		$data = unpack('vdisk/vdisk_start/vdisk_entries/ventries/Vsize/Voffset/vcomment_size', fread($zip, 18));            		$centd['comment'] = ($data['comment_size'] != 0) ? fread($zip, $data['comment_size']) : '';  		// 注释            		$centd['entries']      = $data['entries'];            		$centd['disk_entries'] = $data['disk_entries'];            		$centd['offset']       = $data['offset'];            		$centd['disk_start']   = $data['disk_start'];            		$centd['size']         = $data['size'];            		$centd['disk']         = $data['disk'];            		return $centd;        	}                        	private function ReadCentralFileHeaders($zip){            		$binary_data = fread($zip, 46);            		$header      = unpack('vchkid/vid/vversion/vversion_extracted/vflag/vcompression/vmtime/vmdate/Vcrc/Vcompressed_size/Vsize/vfilename_len/vextra_len/vcomment_len/vdisk/vinternal/Vexternal/Voffset', $binary_data);            		$header['filename'] = ($header['filename_len'] != 0) ? fread($zip, $header['filename_len']) : '';            		$header['extra']    = ($header['extra_len']    != 0) ? fread($zip, $header['extra_len'])    : '';            		$header['comment']  = ($header['comment_len']  != 0) ? fread($zip, $header['comment_len'])  : '';                		if($header['mdate'] && $header['mtime']){                			$hour    = ($header['mtime']  & 0xF800) >> 11;                			$minute  = ($header['mtime']  & 0x07E0) >> 5;                			$seconde = ($header['mtime']  & 0x001F) * 2;                			$year    = (($header['mdate'] & 0xFE00) >> 9) + 1980;                			$month   = ($header['mdate']  & 0x01E0) >> 5;                			$day     = $header['mdate']   & 0x001F;                			$header['mtime'] = mktime($hour, $minute, $seconde, $month, $day, $year);            		} else {                			$header['mtime'] = time();            		}            		$header['stored_filename'] = $header['filename'];            		$header['status'] = 'ok';            		if(substr($header['filename'], -1) == '/'){ 			$header['external'] = 0x41FF0010; }  // 判断是否文件夹       			if ('Linux' == PHP_OS){	 	$header['filename']=iconv("gb2312", "UTF-8", $header['filename']);	 	$header['extra']=iconv("gb2312", "UTF-8", $header['extra']);	 	$header['stored_filename']=iconv("gb2312", "UTF-8", $header['stored_filename']);     			}			return $header;        	}                	private function ReadFileHeader($zip){            		$binary_data = fread($zip, 30);            		$data        = unpack('vchk/vid/vversion/vflag/vcompression/vmtime/vmdate/Vcrc/Vcompressed_size/Vsize/vfilename_len/vextra_len', $binary_data);                		$header['filename']        = fread($zip, $data['filename_len']);            		$header['extra']           = ($data['extra_len'] != 0) ? fread($zip, $data['extra_len']) : '';            		$header['compression']     = $data['compression'];            		$header['size']            = $data['size'];            		$header['compressed_size'] = $data['compressed_size'];            		$header['crc']             = $data['crc'];            		$header['flag']            = $data['flag'];            		$header['mdate']           = $data['mdate'];            		$header['mtime']           = $data['mtime'];   		if ('Linux' == PHP_OS){	 	$header['filename']=iconv("gb2312", "UTF-8", $header['filename']);	 	$header['extra']=iconv("gb2312", "UTF-8", $header['extra']);	 	$header['stored_filename']=iconv("gb2312", "UTF-8", $header['stored_filename']);     			}        		if($header['mdate'] && $header['mtime']){                			$hour    = ($header['mtime']  & 0xF800) >> 11;                			$minute  = ($header['mtime']  & 0x07E0) >> 5;                			$seconde = ($header['mtime']  & 0x001F) * 2;                			$year    = (($header['mdate'] & 0xFE00) >> 9) + 1980;                			$month   = ($header['mdate']  & 0x01E0) >> 5;                			$day     = $header['mdate']   & 0x001F;                			$header['mtime'] = mktime($hour, $minute, $seconde, $month, $day, $year);            		}else{                			$header['mtime'] = time();            		}                		$header['stored_filename'] = $header['filename'];            		$header['status']          = "ok";            		return $header;        	}                	private function ExtractFile($header, $to, $zip){  		if ('Linux' == PHP_OS){	 	$header['filename']=iconv("gb2312", "UTF-8", $header['filename']);	 	$header['extra']=iconv("gb2312", "UTF-8", $header['extra']);	 	$header['stored_filename']=iconv("gb2312", "UTF-8", $header['stored_filename']);     			}    		$header = $this->readfileheader($zip);                        		if(substr($to, -1) != "/"){ $to .= "/"; }            		if([email&#160;protected]_dir($to)){ @mkdir($to, 0777); }                        		$pth = explode("/", dirname($header['filename']));            		for($i=0; isset($pth[$i]); $i++){                			if(!$pth[$i]){ continue; }                			$pthss .= $pth[$i]."/";                			if(!is_dir($to.$pthss)){ 				@mkdir($to.$pthss, 0777); 			}            		}                        		if(!($header['external'] == 0x41FF0010) && !($header['external'] == 16)){                			if($header['compression'] == 0){                    				$fp = @fopen($to.$header['filename'], 'wb');                    				if(!$fp){ return(-1); }                    				$size = $header['compressed_size'];                                        				while($size != 0){                        					$read_size   = ($size < 2048 ? $size : 2048);                        					$buffer      = fread($zip, $read_size);                        					$binary_data = pack('a'.$read_size, $buffer);                        					@fwrite($fp, $binary_data, $read_size);                        					$size       -= $read_size;                    				}                    				fclose($fp);                    				touch($to.$header['filename'], $header['mtime']);                                			}else{                                        				$fp = @fopen($to.$header['filename'].'.gz', 'wb');                    				if(!$fp){ return(-1); }                    				$binary_data = pack('va1a1Va1a1', 0x8b1f, Chr($header['compression']), Chr(0x00), time(), Chr(0x00), Chr(3));                                        				fwrite($fp, $binary_data, 10);                    				$size = $header['compressed_size'];                                        				while($size != 0){                        					$read_size   = ($size < 1024 ? $size : 1024);                        					$buffer      = fread($zip, $read_size);                        					$binary_data = pack('a'.$read_size, $buffer);                        					@fwrite($fp, $binary_data, $read_size);                        					$size       -= $read_size;                    				}                                        				$binary_data = pack('VV', $header['crc'], $header['size']);                    				fwrite($fp, $binary_data, 8);                    				fclose($fp);                                        				$gzp = @gzopen($to.$header['filename'].'.gz', 'rb') or die("Cette archive est compress!");                                        				if(!$gzp){ return(-2); }                    				$fp = @fopen($to.$header['filename'], 'wb');                    				if(!$fp){ return(-1); }                    				$size = $header['size'];                                        				while($size != 0){                        					$read_size   = ($size < 2048 ? $size : 2048);                        					$buffer      = gzread($gzp, $read_size);                        					$binary_data = pack('a'.$read_size, $buffer);                        					@fwrite($fp, $binary_data, $read_size);                        					$size       -= $read_size;                    				}                    				fclose($fp); 				gzclose($gzp);                                        				touch($to.$header['filename'], $header['mtime']);                    				@unlink($to.$header['filename'].'.gz');                			}            		}            		return true;        	}   }
Nach dem Login kopieren

?

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Verwenden Sie die Funktion File.length() von Java, um die Größe der Datei zu ermitteln Verwenden Sie die Funktion File.length() von Java, um die Größe der Datei zu ermitteln Jul 24, 2023 am 08:36 AM

Verwenden Sie die File.length()-Funktion von Java, um die Größe einer Datei zu ermitteln. Die Dateigröße ist eine sehr häufige Anforderung beim Umgang mit Dateioperationen. Java bietet eine sehr praktische Möglichkeit, die Größe einer Datei zu ermitteln, d. h. mithilfe der Länge(. )-Methode der File-Klasse. In diesem Artikel wird erläutert, wie Sie mit dieser Methode die Größe einer Datei ermitteln und entsprechende Codebeispiele angeben. Zuerst müssen wir ein File-Objekt erstellen, um die Datei darzustellen, deren Größe wir ermitteln möchten. So erstellen Sie ein File-Objekt: Filef

So konvertieren Sie einen PHP-Blob in eine Datei So konvertieren Sie einen PHP-Blob in eine Datei Mar 16, 2023 am 10:47 AM

So konvertieren Sie einen PHP-Blob in eine Datei: 1. Erstellen Sie eine PHP-Beispieldatei; 2. Über „function blobToFile(blob) {return new File([blob], 'screenshot.png', { type: 'image/jpeg' }) } ”-Methode kann zum Konvertieren von Blob in eine Datei verwendet werden.

Hongmeng native Anwendung zufälliger Poesie Hongmeng native Anwendung zufälliger Poesie Feb 19, 2024 pm 01:36 PM

Um mehr über Open Source zu erfahren, besuchen Sie bitte: 51CTO Hongmeng Developer Community https://ost.51cto.com Laufumgebung DAYU200:4.0.10.16SDK: 4.0.10.15IDE: 4.0.600 1. Um eine Anwendung zu erstellen, klicken Sie auf Datei- >newFile->CreateProgect. Vorlage auswählen: [OpenHarmony] EmptyAbility: Geben Sie den Projektnamen, shici, den Namen des Anwendungspakets com.nut.shici und den Speicherort der Anwendung XXX ein (kein Chinesisch, Sonderzeichen oder Leerzeichen). CompileSDK10, Modell: Stage. Gerät

Benennen Sie Dateien mit der Java-Funktion File.renameTo() um Benennen Sie Dateien mit der Java-Funktion File.renameTo() um Jul 25, 2023 pm 03:45 PM

Verwenden Sie die Funktion File.renameTo() von Java, um Dateien umzubenennen. In der Java-Programmierung müssen wir häufig Dateien umbenennen. Java stellt die File-Klasse für die Verarbeitung von Dateioperationen bereit, und die Funktion renameTo() kann Dateien problemlos umbenennen. In diesem Artikel wird die Verwendung der Java-Funktion File.renameTo() zum Umbenennen von Dateien vorgestellt und entsprechende Codebeispiele bereitgestellt. Die Funktion File.renameTo() ist eine Methode der File-Klasse.

Wie übergibt SpringBoot Parameter im Header durch Feign-Aufrufe? Wie übergibt SpringBoot Parameter im Header durch Feign-Aufrufe? May 16, 2023 pm 08:38 PM

[SpringBoot] Übergeben von Parametern im Header durch Feign-Aufrufe So übergeben Sie Header-Parameter durch Feign Problembeschreibung Wenn wir Feign verwenden, um die API-Schnittstelle eines anderen Dienstes in Spring Cloud anzufordern, müssen die Parameter im Header übergeben werden. Wenn nein Wenn eine spezielle Verarbeitung durchgeführt wird, gehen die Parameter im Header verloren. Lösung 1: Übergeben Sie es über @RequestHeader(name="headerName"). Beispiel: Feign ist wie folgt definiert: @FeignClient(name="service-name")pub

Was bedeutet Linux-Header? Was bedeutet Linux-Header? Jul 18, 2023 pm 03:34 PM

Der Header von Linux bezieht sich auf den Anfang einer Datei oder eines Datenstroms, der Metadaten über den Inhalt enthält. Durch korrektes Schreiben und Verwenden der Header-Datei können Entwickler Systemressourcen besser nutzen und die Lesbarkeit und Lesbarkeit des Codes verbessern. Wartbarkeit.

Verwenden Sie die Funktion File.getParent() von Java, um den übergeordneten Pfad der Datei abzurufen Verwenden Sie die Funktion File.getParent() von Java, um den übergeordneten Pfad der Datei abzurufen Jul 24, 2023 pm 01:40 PM

Verwenden Sie die Funktion File.getParent() von Java, um den übergeordneten Pfad einer Datei abzurufen. In der Java-Programmierung müssen wir häufig Dateien und Ordner bearbeiten. Manchmal müssen wir den übergeordneten Pfad einer Datei ermitteln, also den Pfad des Ordners, in dem sich die Datei befindet. Die File-Klasse von Java bietet die Methode getParent(), um den übergeordneten Pfad einer Datei oder eines Ordners abzurufen. Die File-Klasse ist Javas abstrakte Darstellung von Dateien und Ordnern. Sie bietet eine Reihe von Methoden zum Bearbeiten von Dateien und Ordnern. Unter ihnen, bekommen

Verwenden Sie die Funktion File.getParentFile() von Java, um das übergeordnete Verzeichnis der Datei abzurufen Verwenden Sie die Funktion File.getParentFile() von Java, um das übergeordnete Verzeichnis der Datei abzurufen Jul 27, 2023 am 11:45 AM

Verwenden Sie die Funktion File.getParentFile() von Java, um das übergeordnete Verzeichnis einer Datei abzurufen. In der Java-Programmierung müssen wir häufig Dateien und Ordner bedienen. Wenn wir das übergeordnete Verzeichnis einer Datei abrufen müssen, können wir die von Java bereitgestellte Funktion File.getParentFile() verwenden. In diesem Artikel wird die Verwendung dieser Funktion erläutert und Codebeispiele bereitgestellt. Die Dateiklasse in Java ist die Hauptklasse zum Betreiben von Dateien und Ordnern. Es bietet viele Methoden zum Abrufen und Bearbeiten von Dateieigenschaften

See all articles