PHP生成壓縮檔案例項

2022-10-06 11:00:18 字數 3134 閱讀 1681

大概需求:

細節需求:當前訂單號_年月日+時間.zip  例如:

1.生成壓縮檔案,壓縮檔案名格式:

2.壓縮檔案存放在根目錄 /upload/zipfile/年月/自定義的壓縮檔案名.zip

3.點選**壓縮包,系統開始對壓縮檔案打包,打包完成後自動開始**

4.為了防止暴露壓縮包檔案路徑,需要對**的壓縮包檔名改名

具體操作模式請見下面的**:

檔案路徑:

壓縮包檔案存放路徑:/upload/zipfile/

上傳的附件存放路徑:/upload/file/

1.基本配置檔案檔案 config.inc.php放在系統根目錄

define('sys_root', str_replace("\\", '/', dirname(__file__)))

define('sys_upload', sys_root.'/upload/file');

define('sys_download', sys_root.'/upload/zipfile');

define('sys_win', strpos(strtoupper(php_os), 'win') !== false ? true: false);

define('sys_chmod', ('0777' && !sys_win) ? '0777' : 0);

2.壓縮包程式**檔案 getzip.php

header("content-type: text/html; charset=utf-8");

require_once '../config.inc.php'; //載入配置路徑配置檔案

sys_upload . '/x.jpg',); //這裡是附件的檔案陣列

$ordernum = '888'; //訂單號

$downfilename = 'tieniu.zip'; //**的檔名 如果為空那麼就是系統自定義名稱 如果指定就顯示指定名字

$zipurl = create_zip($arrfiles, $ordernum); //生成的壓縮檔案名詞

file_down($zipurl, $downfilename); //提供http**,並可以進行重新命名**檔案,建議重新命名,防止路徑猜解

/* * 生成壓縮包檔名

* @param [string] $ordernum 訂單號

* @return [string] 返回帶有絕對路徑的訂單號的壓縮檔案名

*/function get_zipname($ordernum)

/* * 按照特定需求打包壓縮包的目錄結構設定

*/functiowww.cppcns.comn pack_object()

/* * 生成壓縮包

* @param [array] $arrfiles 帶有絕對路徑的檔案陣列

* @param [string] $ordernum 訂單號

* @return [string] 返回帶有絕對路徑的訂單號的壓縮檔案名 如如果失敗返回 false

*/function create_zip($arrfiles, $ordernum)

foreach ($arrfiles as $path)

} $zip->close();

return $zipname;}/*

* 處理檔案目錄

* @param [array] $arrfiles 帶有絕對路徑的檔案陣列

* @param [string] $dirpath 檔案路徑

* @return [string] 返回處理的檔案路徑,方便生成檔案目錄

*/function dir_path($dirpath)

/* * 生成檔案目錄

* @param [string] $path 檔案路徑

* @return [string] 返回生成的檔案目錄結構

*/function dir_create($path)

return is_dir($path);}/*

* 檔案copy

* @param [string] $from copy原始檔

* @param [string] $to copy檔案目的地

* @return [bool] 成功 ture 失敗 false

*/function file_copy($from, $to) else }/*

* 檔案**處理函式

* @param [string] $file 檔案路徑

* @param [string] $filename **時間重新命名的檔名

* @param [string] $data **檔案填裝的資料內容

*/function file_down($file, $filename = '', $data = '') else

header('expires: ' . gmdate('d, d m y h:i:s'程式設計客棧) . ' gmt');

header('content-encoding: none');

header('content-length: ' . $filesize);

header('content-disposition: attachment; filename=' . $filename);

header('content-type: ' . $filetype);

if ($data) else

exit;

}function file_ext($filename)

//此函式未用到,用來做整個目錄的打包**

function listdir($start_dir = '.')

closedir($fh);

} else

return $files;

}3.php程式生成壓縮檔案需要用到壓縮類:ziparchive

這個是php的擴充套件類,自php5.2版本以後就已經支援這個擴充套件,如果你在使用的時候出現錯誤,檢視下php.ini裡面的extension=php_zip.dll前面的分號有沒有去掉,然後再重啟apache這樣才能使用這個類庫。

本文標題: php生成壓縮檔案例項

本文位址: /wangluo/php/119490.html

PHP生成壓縮檔案開發例項

大概需求 細節需求 當前訂單號 年月日 時間.zip 例如 1.生成壓縮檔案,壓縮檔案名格式 2.壓縮檔案存放在根目錄 upload zipfile 年月 自定義的壓縮檔案名.zip 具體操作模式請見下面的 檔案路徑 壓縮包檔案存放路徑 upload zipfile 上傳的附件存放路徑 upload...

php檔案上傳過濾後生成壓縮檔案

message.if ok false echo 處理表單提交 action isset post action post action file isset post file post file if file message true message false switch action e...

php壓縮解壓縮檔案

注 需要安裝zip擴充套件 壓縮單個檔案 method zip file param string filename 檔名 return boolean true false function zip file string filename zip new ziparchive zipname b...