Changeset 18508


Ignore:
Timestamp:
2010/01/25 12:07:25 (12 years ago)
Author:
nanasess
bzr:base-revision:
ohkouchi@loop-az.jp-20100125015817-xzmo8rhn3o3trlbp
bzr:committer:
Kentaro Ohkouchi <ohkouchi@loop-az.jp>
bzr:file-ids:

data/class/pages/admin/products/LC_Page_Admin_Products_UploadCSV.php 15472@1e3b908f-19a9-db11-a64c-001125224ba8:branches%2Ffeature-module-update%2Fdata%2Fclass%2Fpages%2Fadmin%2Fproducts%2FLC_Page_Admin_Products_UploadCSV.php
data/class/pages/admin/products/LC_Page_Admin_Products_UploadCSVCategory.php 17194@1e3b908f-19a9-db11-a64c-001125224ba8:branches%2Fcomu-ver2%2Fdata%2Fclass%2Fpages%2Fadmin%2Fproducts%2FLC_Page_Admin_Products_UploadCSVCategory.php
bzr:mapping-version:
v4
bzr:repository-uuid:
1e3b908f-19a9-db11-a64c-001125224ba8
bzr:revision-id:
ohkouchi@loop-az.jp-20100125030721-a5hx7s5jyb64x3ta
bzr:revno:
2144
bzr:revprop:branch-nick:
branches/comu-ver2
bzr:root:
branches/comu-ver2
bzr:text-parents:

data/class/pages/admin/products/LC_Page_Admin_Products_UploadCSV.php svn-v4:1e3b908f-19a9-db11-a64c-001125224ba8:branches/comu-ver2:18275
data/class/pages/admin/products/LC_Page_Admin_Products_UploadCSVCategory.php svn-v4:1e3b908f-19a9-db11-a64c-001125224ba8:branches/comu-ver2:18462
bzr:timestamp:
2010-01-25 12:07:21.280999899 +0900
bzr:user-agent:
bzr2.0.1+bzr-svn1.0.1
svn:original-date:
2010-01-25T03:07:21.281000Z
Message:

r18501 merged

  • CSVアップロードで無限ループの可能性があるのを修正(#566)
Location:
branches/comu-ver2/data/class/pages/admin/products
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • branches/comu-ver2/data/class/pages/admin/products/LC_Page_Admin_Products_UploadCSV.php

    r18275 r18508  
    112112                $enc_filepath = SC_Utils_Ex::sfEncodeFile($filepath, 
    113113                                                          CHAR_CODE, CSV_TEMP_DIR); 
     114                $fp = fopen($enc_filepath, "r"); 
     115 
     116                // 無効なファイルポインタが渡された場合はエラー表示 
     117                if ($fp === false) { 
     118                    SC_Utils_Ex::sfDispError(""); 
     119                } 
    114120 
    115121                // レコード数を得る 
    116                 $rec_count = $this->lfCSVRecordCount($enc_filepath); 
    117  
    118                 $fp = fopen($enc_filepath, "r"); 
     122                $rec_count = $this->lfCSVRecordCount($fp); 
     123 
    119124                $line = 0;      // 行数 
    120125                $regist = 0;    // 登録数 
     
    493498     * CSVのカウント数を得る. 
    494499     * 
    495      * @param string $file_name ファイルパス 
     500     * @param resource $fp fopenを使用して作成したファイルポインタ 
    496501     * @return integer CSV のカウント数 
    497502     */ 
    498     function lfCSVRecordCount($file_name) { 
     503    function lfCSVRecordCount($fp) { 
    499504 
    500505        $count = 0; 
    501         $fp = fopen($file_name, "r"); 
    502506        while(!feof($fp)) { 
    503507            $arrCSV = fgetcsv($fp, CSV_LINE_MAX); 
    504508            $count++; 
    505509        } 
    506  
    507         return $count-1; 
     510        // ファイルポインタを戻す 
     511        if (rewind($fp)) { 
     512            return $count-1; 
     513        } else { 
     514            SC_Utils_Ex::sfDispError(""); 
     515        } 
    508516    } 
    509517 
  • branches/comu-ver2/data/class/pages/admin/products/LC_Page_Admin_Products_UploadCSVCategory.php

    r18462 r18508  
    107107                    CHAR_CODE, CSV_TEMP_DIR); 
    108108 
     109                    $fp = fopen($enc_filepath, "r"); 
     110 
     111                    // 無効なファイルポインタが渡された場合はエラー表示 
     112                    if ($fp === false) { 
     113                        SC_Utils_Ex::sfDispError(""); 
     114                    } 
     115 
    109116                    // レコード数を得る 
    110                     $rec_count = $this->lfCSVRecordCount($enc_filepath); 
    111                     if ($rec_count === false) { 
    112                         $err = false; 
    113                         $arrErr['bad_file_pointer'] = "※ 不正なファイルポインタが検出されました"; 
    114                     } 
    115  
    116                     $fp = fopen($enc_filepath, "r"); 
     117                    $rec_count = $this->lfCSVRecordCount($fp); 
     118 
    117119                    $line = 0;      // 行数 
    118120                    $regist = 0;    // 登録数 
     
    365367     * CSVのカウント数を得る. 
    366368     * 
    367      * @param string $file_name ファイルパス 
     369     * @param string $fp fopenを使用して作成したファイルポインタ 
    368370     * @return mixed CSV のカウント数; $file_name が無効な場合は false 
    369371     */ 
    370     function lfCSVRecordCount($file_name) { 
     372    function lfCSVRecordCount($fp) { 
    371373        $count = 0; 
    372         $fp = fopen($file_name, "r"); 
    373         if ($fp !== false) { 
    374             while(!feof($fp)) { 
    375                 $arrCSV = fgetcsv($fp, CSV_LINE_MAX); 
    376                 $count++; 
    377             } 
     374        while(!feof($fp)) { 
     375            $arrCSV = fgetcsv($fp, CSV_LINE_MAX); 
     376            $count++; 
     377        } 
     378        // ファイルポインタを戻す 
     379        if (rewind($fp)) { 
     380            return $count-1; 
    378381        } else { 
    379             return false; 
    380         } 
    381         return $count-1; 
     382            SC_Utils_Ex::sfDispError(""); 
     383        } 
    382384    } 
    383385 
Note: See TracChangeset for help on using the changeset viewer.