亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > PHP > 正文

PHP生成壓縮文件開發實例

2020-03-22 19:05:40
字體:
來源:轉載
供稿:網友
  • 大概需求:

    每一個訂單都有多個文件附件,在下載的時候希望對當前訂單的文件自動打包成一個壓縮包下載

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

    1.生成壓縮文件,壓縮文件名格式:

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

    3.點擊下載壓縮包,系統開始對壓縮文件打包,打包完成后自動開始下載

    4.為了防止暴露壓縮包文件路徑,需要對下載的壓縮包文件名改名

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

    文件路徑:

    壓縮包文件存放路徑:/upload/zipfile/

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

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

    define('SYS_ROOT', str_replace("http://", '/', 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.壓縮包html' target='_blank'>程序代碼文件 getzip.php

    header("Content-type: text/html; charset=utf-8");require_once '../config.inc.php'; //載入配置路徑配置文件$arrfiles = array(SYS_UPLOAD . '/1.jpg',    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) {    $zipName = SYS_DOWNLOAD . '/' . date('Ym') . '/' . $orderNum . '_' . date("Ymd_Hi") . '.zip';    return $zipName;}/* * 按照特定需求打包壓縮包的目錄結構設置 */function pack_object() {    }/* * 生成壓縮包 * @param  [Array] $arrfiles 帶有絕對路徑的文件數組 * @param  [String] $orderNum 訂單號 * @return [String] 返回帶有絕對路徑的訂單號的壓縮文件名 如如果失敗返回 FALSE */function create_zip($arrfiles, $orderNum) {    $zipName = get_zipname($orderNum); //獲得文件名    dir_create(dirname($zipName)); //建立生成壓縮文件的目錄    $zip = new ZipArchive();    if ($zip->open($zipName, ZIPARCHIVE::CREATE) !== TRUE) {        return FALSE;    }    foreach ($arrfiles as $path) {        if (is_file($path)) {//判斷文件是否存在            $zip->addFile($path, basename($path)); //把文件加入到壓縮包中        }    }    $zip->close();    return $zipName;}/* * 處理文件目錄 * @param  [Array] $arrfiles 帶有絕對路徑的文件數組 * @param  [String] $dirpath 文件路徑 * @return [String] 返回處理的文件路徑,方便生成文件目錄 */function dir_path($dirpath) {    $dirpath = str_replace('//', '/', $dirpath);    if (substr($dirpath, -1) != '/')        $dirpath = $dirpath . '/';    return $dirpath;}/* * 生成文件目錄 * @param  [String] $path 文件路徑 * @return [String] 返回生成的文件目錄結構 */function dir_create($path) {    if (is_dir($path))        return true;    $dir = str_replace(SYS_DOWNLOAD . '/', '', $path);    $dir = dir_path($dir);    $temp = explode('/', $dir);    $cur_dir = SYS_DOWNLOAD . '/';    $max = count($temp) - 1;    for ($i = 0; $i < $max; $i++) {        $cur_dir .= $temp[$i] . '/';        if (is_dir($cur_dir))            continue;        @mkdir($cur_dir);        if (SYS_CHMOD)            @chmod($cur_dir, SYS_CHMOD);        if (!is_file($cur_dir . '/index.html') && !is_file($cur_dir . '/index.php'))            file_copy(SYS_ROOT . '/upload/index.html', $cur_dir . '/index.html');    }    return is_dir($path);}/* * 文件COPY * @param  [String] $from copy源文件 * @param  [String] $to copy文件目的地 * @return [Bool]  成功 ture 失敗 false */function file_copy($from, $to) {    dir_create(dirname($to));    if (is_file($to) && SYS_CHMOD)        @chmod($to, SYS_CHMOD);    if (@copy($from, $to)) {        if (SYS_CHMOD)            @chmod($to, SYS_CHMOD);        return true;    } else {        return false;    }}/* * 文件下載處理函數 * @param  [String] $file 文件路徑 * @param  [String] $filename 下載時間重新命名的文件名 * @param  [String] $data 下載文件填裝的數據內容 */function file_down($file, $filename = '', $data = '') {    if (!$data && !is_file($file))        exit;    $filename = $filename ? $filename : basename($file);    $filetype = file_ext($filename);    $filesize = $data ? strlen($data) : filesize($file);    ob_end_clean();    @set_time_limit(0);    if (strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE') !== false) {        header('Cache-Control: must-revalidate, post-check=0, pre-check=0');        header('Pragma: public');    } else {        header('Pragma: no-cache');    }    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) {        echo $data;    } else {        readfile($file);    }    exit;}function file_ext($filename) {    return strtolower(trim(substr(strrchr($filename, '.'), 1)));}//此函數未用到,用來做整個目錄的打包下載function listdir($start_dir = '.') {    $files = array();    if (is_dir($start_dir)) {        $fh = opendir($start_dir);        while (($file = readdir($fh)) !== false) {            if (strcmp($file, '.') == 0 || strcmp($file, '..') == 0)                continue;            $filepath = $start_dir . '/' . $file;            if (is_dir($filepath))                $files = array_merge($files, listdir($filepath));            else                array_push($files, $filepath);        }        closedir($fh);    } else {        $files = false;    }    return $files;}        

    鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

  • 發表評論 共有條評論
    用戶名: 密碼:
    驗證碼: 匿名發表
    亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
    成人免费看吃奶视频网站| 国产精品美女视频网站| 91美女福利视频高清| 日韩有码在线电影| 国产欧美日韩精品在线观看| 国产精品96久久久久久又黄又硬| 久久99亚洲热视| 这里只有视频精品| www.色综合| 国产一区二区日韩| 日韩视频免费看| 国产成人久久久| 精品调教chinesegay| 91精品国产精品| 欧美成人精品不卡视频在线观看| 亚洲在线观看视频| 欧美日韩亚洲天堂| 日韩精品中文字幕久久臀| 久久综合伊人77777蜜臀| 久久99视频精品| 欧美制服第一页| 九九热精品视频在线播放| 久久久久久有精品国产| 91高清在线免费观看| 中文字幕一区二区三区电影| 欧美激情视频三区| 久久久精品中文字幕| 欧美专区在线观看| 久久91精品国产91久久跳| 亚洲第一天堂av| 亚洲xxx大片| 日韩电视剧在线观看免费网站| 久久男人资源视频| 久久久人成影片一区二区三区观看| 久久中文字幕在线| 久久久电影免费观看完整版| 啊v视频在线一区二区三区| 欧美老少配视频| 一区二区三区高清国产| 在线观看国产成人av片| 亚洲精品中文字幕女同| 精品国产一区二区三区久久狼5月| 精品国产鲁一鲁一区二区张丽| 日韩欧美在线网址| 伊人久久久久久久久久久| 自拍偷拍免费精品| 欧美激情综合色综合啪啪五月| 操人视频在线观看欧美| 欧美亚洲第一区| 国产日产亚洲精品| 亚洲精品wwww| 亚洲美女黄色片| 精品中文字幕乱| 色综合久综合久久综合久鬼88| 亚洲国产欧美一区二区三区同亚洲| 国产精品热视频| 青青在线视频一区二区三区| 奇门遁甲1982国语版免费观看高清| 伊人久久精品视频| 在线午夜精品自拍| 伊人久久五月天| 欧美亚洲在线视频| 亚洲成色777777在线观看影院| 欧美成人精品h版在线观看| 久久久久久久一| 亚洲精品久久久一区二区三区| 久青草国产97香蕉在线视频| 一区二区三区美女xx视频| 国产精品久久在线观看| 国产精品美乳在线观看| 亚洲国产精品va在线看黑人| 欧美激情视频三区| 欧美成人激情视频| 午夜精品久久久久久久99热| 亚洲精品www久久久久久广东| 日韩精品极品视频免费观看| 亚洲精品国产成人| 久久国产精彩视频| 久久免费视频在线观看| 日本高清+成人网在线观看| 成人xxxx视频| 精品中文字幕在线观看| 欧美三级欧美成人高清www| 久久影院中文字幕| 精品久久久中文| 亚洲高清一区二| 不卡av电影在线观看| 久久久久久久电影一区| 欧美激情亚洲综合一区| 久热在线中文字幕色999舞| 国产一区二区三区精品久久久| 亚洲精品第一页| 国产亚洲精品久久久优势| 亚洲视频电影图片偷拍一区| 精品丝袜一区二区三区| 国产精品video| 国产福利精品视频| 国产精品视频在线播放| 韩国美女主播一区| 欧美不卡视频一区发布| 91系列在线播放| 欧美日韩成人黄色| 最近2019中文字幕第三页视频| 日韩在线视频免费观看高清中文| 久久人91精品久久久久久不卡| 曰本色欧美视频在线| 欧洲成人在线观看| 中文字幕精品视频| 亚洲在线视频观看| 97国产精品人人爽人人做| 亚洲欧美福利视频| 一区二区三区四区精品| 亚洲色图35p| 欧美视频在线免费| 国外成人免费在线播放| 亚洲色图第三页| 91成人在线播放| 久久噜噜噜精品国产亚洲综合| 亚洲三级黄色在线观看| 国自产精品手机在线观看视频| 欧美日韩亚洲天堂| 午夜精品久久久久久久99黑人| 视频在线观看99| 精品国产31久久久久久| 91国偷自产一区二区三区的观看方式| 久久视频免费在线播放| 国产精品吊钟奶在线| 亚洲社区在线观看| 日韩免费高清在线观看| 国产日韩欧美电影在线观看| 国产精品免费看久久久香蕉| 九九精品在线播放| 久久久视频免费观看| 成人高h视频在线| 国产一区二区久久精品| 伊人青青综合网站| 97在线免费观看| 国产精品揄拍一区二区| 亚洲欧美色图片| 欧美精品videofree1080p| 97成人在线视频| 欧美成人午夜剧场免费观看| 91在线无精精品一区二区| 欧美极度另类性三渗透| 欧美xxxx做受欧美.88| 91在线视频九色| 欧美午夜片在线免费观看| 精品无码久久久久久国产| 国产精品久久久久久久一区探花| 欧美日韩国产一区二区| 成人午夜激情免费视频| 国产精品18久久久久久首页狼| 国产一区二区在线免费| 韩国19禁主播vip福利视频| 久久国产精彩视频| 亚洲国产精品电影在线观看| 国产精品免费视频xxxx| 91精品国产电影| 成人黄色免费网站在线观看| 国产精品va在线| 欧美成人免费在线观看| 精品国内自产拍在线观看| 国产综合久久久久| 国产精品爽爽爽爽爽爽在线观看|