php 파일 을 압축 하여 다운로드 하려 면 PHP 자체 의 ZipArchive 압축 파일 을 사용 하고 압축 된 파일 을 다운로드 합 니 다.
5177 단어 파일 패키지
<?php
require'./download.php';
/**
* , zip
*/
class traverseDir{
public $currentdir;//
public $filename;//
public $fileinfo;//
public function __construct(){
$this->currentdir=getcwd();//
}
//
public function scandir($filepath){
if (is_dir($filepath)){
$arr=scandir($filepath);
foreach ($arr as $k=>$v){
$this->fileinfo[$v][]=$this->getfilesize($v);
}
}else {
echo "<script>alert(' ');</script>";
}
}
/**
*
*
* @param string $filename
* @return (KB)
*/
public function getfilesize($fname){
return filesize($fname)/1024;
}
/**
* (zip )
*/
public function tozip($items){
$zip=new ZipArchive();
$zipname=date('YmdHis',time());
if (!file_exists($zipname)){
$zip->open($zipname.'.zip',ZipArchive::OVERWRITE);// zip
for ($i=0;$i<count($items);$i++){
$zip->addFile($this->currentdir.'/'.$items[$i],$items[$i]);
}
$zip->close();
$dw=new download($zipname.'.zip'); //
$dw->getfiles();
unlink($zipname.'.zip'); //
}
}
}
?>
페이지 에 표 시 된 코드:
<?php
/**
*
*
*/
class download{
protected $_filename;
protected $_filepath;
protected $_filesize;//
public function __construct($filename){
$this->_filename=$filename;
$this->_filepath=dirname(__FILE__).'/'.$filename;
}
//
public function getfilename(){
return $this->_filename;
}
// ( )
public function getfilepath(){
return $this->_filepath;
}
//
public function getfilesize(){
return $this->_filesize=number_format(filesize($this->_filepath)/(1024*1024),2);//
}
//
public function getfiles(){
//
if (file_exists($this->_filepath)){
//
$file = fopen($this->_filepath,"r");
//
Header("Content-type: application/octet-stream");
//
Header("Accept-Ranges: bytes");
//
Header("Accept-Length: ".filesize($this->_filepath));
// ,
Header("Content-Disposition: attachment; filename=".$this->_filename);
// ,
echo fread($file, filesize($this->_filepath));
// , 1024
//
$buffer=1024;//
//
while (!feof($file)) {
//
$file_data=fread($file,$buffer);
// 1024
echo $file_data;
}
fclose($file);
}else {
echo "<script>alert(' , ');</script>";
}
}
}
?>
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
php ZipArchive 다 중 파일 패키지 다운로드 인 스 턴 스 구현인 스 턴 스 코드: 메모:안의 경 로 는 모두 절대 경 로 를 사용 합 니 다.그렇지 않 으 면 파일 을 찾 을 수 없습니다. 기타 조작 추가: 압축 풀기 zip 파일 압축 해제 파일 디 렉 터 리 가 져 오기 여...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.