Changeset 16682


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

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

Location:
branches/feature-module-update/data/class
Files:
4 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?> 
  • branches/feature-module-update/data/class/pages/admin/design/LC_Page_Admin_Design_Template.php

    r16680 r16682  
    2525require_once(CLASS_PATH . "pages/LC_Page.php"); 
    2626require_once(DATA_PATH . "module/Tar.php"); 
     27require_once(CLASS_EX_PATH . "helper_extends/SC_Helper_FileManager_Ex.php"); 
    2728 
    2829/** 
     
    6869        $this->arrErr  = array(); 
    6970        $this->arrForm = array(); 
     71        ini_set("max_execution_time", 300); 
    7072    } 
    7173 
     
    149151            $template_code = $objForm->getValue('template_code_temp'); 
    150152            // ユーザデータの下のファイルも保存する。 
    151             SC_Utils::sfCopyDir(USER_TEMPLATE_PATH . $template_code . "/", SMARTY_TEMPLATES_DIR . $template_code . "/"); 
    152             SC_Utils::downloadArchiveFiles(SMARTY_TEMPLATES_DIR . $template_code); 
     153            SC_Utils::sfCopyDir(USER_TEMPLATE_PATH . $template_code . "/", SMARTY_TEMPLATES_DIR . $template_code . "/user_data/"); 
     154            SC_Helper_FileManager::downloadArchiveFiles(SMARTY_TEMPLATES_DIR . $template_code); 
    153155            break; 
    154156             
  • branches/feature-module-update/data/class/pages/admin/design/LC_Page_Admin_Design_Up_Down.php

    r16680 r16682  
    5252        $this->arrErr  = array(); 
    5353        $this->arrForm = array(); 
     54        ini_set("max_execution_time", 300); 
    5455    } 
    5556 
  • branches/feature-module-update/data/class/util/SC_Utils.php

    r16680 r16682  
    2121 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA. 
    2222 */ 
    23  
    24  // {{{ requires 
    25 require_once(DATA_PATH. "module/Tar.php"); 
    2623  
    2724/** 
     
    19331930        return $str;  
    19341931    } 
    1935      
    1936      
    1937     /** 
    1938      * ユーザが作成したファイルをアーカイブしダウンロードさせる 
    1939      * TODO 要リファクタリング 
    1940      * @param void 
    1941      * @return void 
    1942      */ 
    1943     function downloadArchiveFiles($dir) { 
    1944         $debug_message = ""; 
    1945         // ダウンロードされるファイル名 
    1946         $dlFileName = 'tpl_package_' . date('YmdHis') . '.tar.gz'; 
    1947          
    1948         // ファイル一覧取得 
    1949         $arrFileHash = SC_Utils::sfGetFileList($dir); 
    1950         foreach($arrFileHash as $val) { 
    1951             $arrFileList[] = $val['file_name']; 
    1952             $debug_message.= "圧縮:".$val['file_name']."\n"; 
    1953         } 
    1954         GC_Utils::gfDebugLog($debug_message);        
    1955          
    1956         // ディレクトリを移動 
    1957         chdir($dir); 
    1958         // 圧縮をおこなう 
    1959         $tar = new Archive_Tar($dlFileName, true); 
    1960         $tar->create($arrFileList); 
    1961          
    1962         // ダウンロード用HTTPヘッダ出力 
    1963         header("Content-disposition: attachment; filename=${dlFileName}"); 
    1964         header("Content-type: application/octet-stream; name=${dlFileName}"); 
    1965         header("Content-Length: " . filesize($dlFileName)); 
    1966         readfile($dlFileName); 
    1967         unlink($dir . "/" . $dlFileName); 
    1968         exit; 
    1969     } 
    19701932     
    19711933    /* デバッグ用 ------------------------------------------------------------------------------------------------*/ 
Note: See TracChangeset for help on using the changeset viewer.