phpzip打包
⑴ 我有個php程序 想將伺服器上文件打成zip壓縮包然後進行下載我能需要壓縮的文件夾的路徑 要怎麼寫
相對路徑./ 當前目錄
../上級目錄
⑵ 有沒有用PHP生成標准ZIP文件的方法
$filename="./sendfile/".date('YmdHis').".zip";//最終生成的文件名(含路徑)
try{
//生成文件
$zip=newZipArchive();//使用本類,linux需開啟zlib,windows需取消php_zip.dll前的注釋
if($zip->open($filename,ZIPARCHIVE::CREATE)!==TRUE){
exit('無法打開文件,或者文件創建失敗');
}
for($i=0;$i<sizeof($file_arr);$i++){
$zip->addFile($file_arr[$i]['guidFilePath'],iconv("utf-8","gbk",$file_arr[$i]["realFileName"]));
}
$zip->close();
}catch(Exception$e){
header("Content-Type:text/html;charset=utf-8");
echo"伺服器壓縮文件失敗!serverzipfilefail".$e->getMessage();
}
//下面是輸出下載;
header("Cache-Control:max-age=0");
header("Content-Description:FileTransfer");
header('Content-disposition:attachment;filename='.basename($filename));//文件名
header("Content-Type:application/zip");//zip格式的
header("Content-Transfer-Encoding:binary");//告訴瀏覽器,這是二進制文件
header('Content-Length:'.filesize($filename));//告訴瀏覽器,文件大小
@readfile($filename);//輸出文件;
unlink($filename);//刪除文件
⑶ thinkphp5 怎麼打包指定文件 rar 或者 zip
PHP擴展類 ZipArchive
要使用該PHP擴展類,需要(PHP 5 >= 5.2.0, PECL zip >= 1.1.0),部分方法需要 PHP 5.2.+,且php.ini配置支持zip
對於win系統,直接去掉php_zip.dll 擴展的注釋,然後重啟http服務(IIS或Apache)即可
使用方法請參照官方文檔
⑷ php 的zip rar 組件 是怎麼安裝的 請高手指點
首先從php的官方網站http://www.php.net/downloads.php 下載windows版本的,有兩種版本:PHP 5.3.6 zip package和PHP 5.3.6 installer,目前最新版本就是5.3.6,pharmar使用的是5.3.6版本。PHP 5.3.6installer為自動安裝方式,雖然比較自動化,但在很多方面受到限制,因此pharmar不推薦使用這種方式,下面介紹PHP 5.3.6zip package壓縮包方式下的手動安裝。
1)、將PHP的壓縮包zip解壓到一個目錄下,推薦:「C:/PHP」,pharmar的是D:\Program Files\Php。
2)、將PHP目錄(D:\Program Files\Php)下的 php.ini-dist 文件重命名為 php.ini,PHP的配置文件就是它,修改以下幾個地方,修改好後把 php.ini 文件復制到 C:\WINDOWS\ 目錄里:
extension_dir="D:\Program Files\Php\ext" ,指向php文件夾下放置「php_*.dll」文件的路徑。PHP4和PHP5的路徑在這里有所區別。
doc_root="D:\PHP" ,指向前面apache設置的首頁位置;
default_charset="gb2312" ,修改默認字元集,這里,如果前面有分號「;」,去掉這個分號;
register_globals=Off 改為 register_globals=On ,使傳遞全局變數有效;
extension=php_dba.dll 如果前面有分號,取消分號,以下同;
extension=php_dbase.dll
extension=php_gd2.dll GD庫做圖,一般用於圖形驗證碼;
extension=php_mysql.dll 用於連接MYSQL資料庫;
3)、將PHP目錄下的 php5ts.dll 文件拷貝到 C:\WINDOWS\system32 目錄。
4)、最後修改 Apache 的 httpd.conf 文件。在該文件的末尾添加如下2行,表示以模塊方式安裝PHP進入Apache:
LoadMole php5_mole D:/Program Files/Php/php5apache2_2.dll
AddType application/x-httpd-php .php
⑸ 怎樣用php壓縮解壓rar,zip文件
要用PHP壓縮解壓文件,常用的方法是調用命令行去執行解壓縮操作
可以用exec()
、system()等函數調用shell命令
Linux下解壓縮命令是tar
[-cxtzjvfpPN]
文件與目錄,tar命令可以壓縮解壓.tar、.gz、.tar.gz、.tgz、.bz2、.tar.bz2、.Z、.tar.Z、.zip這些類型的文件
Linux下默認無法使用rar格式的,要另外安裝RAR
for
Linux,然後使用rar和unrar命令解壓縮rar格式的壓縮文件
⑹ 怎麼用php寫一個表單上傳zip格式的壓縮包並解壓到根目錄的指定目錄中
<?php
if($_FILES["file"]["error"]>0){
echo"<script>console.log('ReturnCode:".$_FILES["file"]["error"]."');</script>";
}
else{
if(!file_exists("upload/".$_FILES["file"]["name"])){
move_uploaded_file($_FILES["file"]["tmp_name"],
"upload/".$_FILES["file"]["name"]);
echo"Storedin:"."upload/".$_FILES["file"]["name"];
system('zip解壓縮命令');
}
else{
system('zip解壓縮命令');
}
}
?>
因為php即使拓展了zip庫,也不能夠實現解壓縮,而且拓展zip庫會要更改php.ini,所以推介下載7z的命令行版本,用系統命令解決。╮( ̄▽ ̄"")╭
⑺ PHP-php生成zip壓縮文件如何給該文件加解壓縮密碼
<?php
//需開啟配置php_zip.dll
//phpinfo();
header("Content-type:text/html;charset=utf-8");
functionget_zip_originalsize($filename,$path){
//先判斷待解壓的文件是否存在
if(!file_exists($filename)){
die("文件$filename不存在!");
}
$starttime=explode('',microtime());//解壓開始的時間
//將文件名和路徑轉成windows系統默認的gb2312編碼,否則將會讀取不到
$filename=iconv("utf-8","gb2312",$filename);
$path=iconv("utf-8","gb2312",$path);
//打開壓縮包
$resource=zip_open($filename);
$i=1;
//遍歷讀取壓縮包裡面的一個個文件
while($dir_resource=zip_read($resource)){
//如果能打開則繼續
if(zip_entry_open($resource,$dir_resource)){
//獲取當前項目的名稱,即壓縮包裡面當前對應的文件名
$file_name=$path.zip_entry_name($dir_resource);
//以最後一個「/」分割,再用字元串截取出路徑部分
$file_path=substr($file_name,0,strrpos($file_name,"/"));
//如果路徑不存在,則創建一個目錄,true表示可以創建多級目錄
if(!is_dir($file_path)){
mkdir($file_path,0777,true);
}
//如果不是目錄,則寫入文件
if(!is_dir($file_name)){
//讀取這個文件
$file_size=zip_entry_filesize($dir_resource);
//最大讀取6M,如果文件過大,跳過解壓,繼續下一個
if($file_size<(1024*1024*6)){
$file_content=zip_entry_read($dir_resource,$file_size);
file_put_contents($file_name,$file_content);
}else{
echo"<p>".$i++."此文件已被跳過,原因:文件過大,->".iconv("gb2312","utf-8",$file_name)."</p>";
}
}
//關閉當前
zip_entry_close($dir_resource);
}
}
//關閉壓縮包
zip_close($resource);
$endtime=explode('',microtime());//解壓結束的時間
$thistime=$endtime[0]+$endtime[1]-($starttime[0]+$starttime[1]);
$thistime=round($thistime,3);//保留3為小數
echo"<p>解壓完畢!,本次解壓花費:$thistime秒。</p>";
}
$size=get_zip_originalsize('20131101.zip','temp/');
?>
⑻ PHP網頁上打包文件生成壓縮文件zip,並彈出下載
既然你只是想學習如何打包.
那我重點就回答你這一塊,正好我剛剛用到;
$filename="./".date('YmdH').".zip";//最終生成的文件名(含路徑)
//生成文件
$zip=newZipArchive();//使用本類,linux需開啟zlib,windows需取消php_zip.dll前的注釋
if($zip->open($filename,ZIPARCHIVE::CREATE)!==TRUE){
exit('無法打開文件,或者文件創建失敗');
}
//$fileNameArr就是一個存儲文件路徑的數組比如array('/a/1.jpg,/a/2.jpg....');
foreach($fileNameArras$val){
$zip->addFile($val,basename($val));//第二個參數是放在壓縮包中的文件名稱,如果文件可能會有重復,就需要注意一下
}
$zip->close();//關閉
//下面是輸出下載;
header("Cache-Control:max-age=0");
header("Content-Description:FileTransfer");
header('Content-disposition:attachment;filename='.basename($filename));//文件名
header("Content-Type:application/zip");//zip格式的
header("Content-Transfer-Encoding:binary");//告訴瀏覽器,這是二進制文件
header('Content-Length:'.filesize($filename));//告訴瀏覽器,文件大小
@readfile($filename);//輸出文件;
⑼ 如何安裝 php 的zip模塊
zip 是php的一個擴展,用於支持zip文件壓縮和解壓
按照下面的步驟配置:
1. 用記事本編輯你的 php.ini 文件,搜索 zip.dll 然後把這一行前面的 ; (分號)去掉,保存 php.ini 注意,這一行的上面應該有很多諸如 ;php_***.dll 的,否則搜索的位置不正確,再次搜索
2. 重新啟動你的 WEB 伺服器。IIS直接在 開始 運行 裡面輸入 iisreset, Apache 通過管理器先停止再啟動即可
⑽ php如何壓縮一個文件夾裡面所有的文件到zip文件裡面
//函數:文件壓縮
//壓縮參數:需要壓縮的文件或文件夾(文件可為數組),壓縮後的zip文件名及存放路徑,壓縮類型1:文件夾2:文件,後續操作1:壓縮後下載;2:存放在伺服器上(默認為/@Upload下)
//壓縮文件夾示例:Tozip("./","../".date("d-H-i-s").".zip",1,2);
//壓縮文件示例:
// $aaa=array("../1.txt","../2.txt");
// Tozip($aaa,"../2.zip",2);FunctionTozip($Path,
$ZipFile,
$Typ=1,
$Todo=1){//IF(!is_writeable($Path)){Exit("文件夾不可寫!");}$Path=Str_iReplace("\\","/",($Path));IF(Is_Null($Path) OrEmpty($Path) Or!IsSet($Path)){ReturnFalse;}IF(Is_Null($ZipFile) OrEmpty($ZipFile) Or!IsSet($ZipFile)){ReturnFalse;}
Include_once("inc/Class_Zip.php");$zip=NewPHPZip;IF(SubStr($Path,-1,1)=="/"){$Path=SubStr($Path,0,
StrLen($Path)-1);}
OB_end_clean();Switch($Typ){Case"1":$zip-ZipDir($Path,
$ZipFile,
$Todo);Break;Case"2":$zip-ZipFile($Path,