Ignore:
Timestamp:
2007/11/05 11:14:58 (19 years ago)
Author:
naka
Message:

ファイル圧縮ダウロード関数の修正

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/feature-module-update/data/class/helper/SC_Helper_FileManager.php

    r16582 r16682  
    2121 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA. 
    2222 */ 
     23 
     24// {{{ requires 
     25require_once(dirname(__FILE__) . '/../../module/Tar.php'); 
    2326 
    2427/** 
     
    336339        return $str; 
    337340    } 
     341     
     342    /** 
     343     * ユーザが作成したファイルをアーカイブしダウンロードさせる 
     344     * TODO 要リファクタリング 
     345     * @param void 
     346     * @return void 
     347     */ 
     348    function downloadArchiveFiles($dir) { 
     349        $debug_message = ""; 
     350        // ダウンロードされるファイル名 
     351        $dlFileName = 'tpl_package_' . date('YmdHis') . '.tar.gz'; 
     352         
     353        // ファイル一覧取得 
     354        $arrFileHash = SC_Utils::sfGetFileList($dir); 
     355        foreach($arrFileHash as $val) { 
     356            $arrFileList[] = $val['file_name']; 
     357            $debug_message.= "圧縮:".$val['file_name']."\n"; 
     358        } 
     359        GC_Utils::gfDebugLog($debug_message);        
     360         
     361        // ディレクトリを移動 
     362        chdir($dir); 
     363        // 圧縮をおこなう 
     364        $tar = new Archive_Tar($dlFileName, true); 
     365        $tar->create($arrFileList); 
     366         
     367        // ダウンロード用HTTPヘッダ出力 
     368        header("Content-disposition: attachment; filename=${dlFileName}"); 
     369        header("Content-type: application/octet-stream; name=${dlFileName}"); 
     370        header("Content-Length: " . filesize($dlFileName)); 
     371        readfile($dlFileName); 
     372        unlink($dir . $dlFileName); 
     373        exit; 
     374    }     
    338375} 
    339376?> 
Note: See TracChangeset for help on using the changeset viewer.