Commit 61e4649ab7eb1ff41132f350cc88bcb56ae7e4e1

Authored by Charl Joseph Mert
1 parent db1c5f1c

Non-Queue bulk downloads fails on all 64bit environments

Jira:KTS-4513

Updated internal Zip Path issue on win 2008 x64

Committed by: Charl Joseph Mert
Showing 1 changed file with 18 additions and 10 deletions
lib/util/ktpclzip.inc.php
... ... @@ -139,20 +139,28 @@ class KTPclZip {
139 139 return $sExportCode;
140 140 }
141 141  
142   - /*
143   - * Returns the part of the folder to be excluded from the zip content structure
144   - *
  142 + /*
145 143 * @params: $sPath folder to start from.
146 144 * @params: $ds directory separator
147 145 */
148   - function getExcludePath($sPath, $ds = '/') {
  146 + static function getExcludePath($sPath, $ds = '/') {
149 147 //Will grab the part of the full path to exclude from the zip contents
150   - if ($sPath[strlen($sPath)] == $ds) {
151   - //Chopping the last ds to make the keepPath contain an actual folder name
152   - $sPath = substr($sPath, 0, strlen($sPath) - 1);
153   - }
154   - $keepPath = end(explode($ds, $sPath));
155   - $excludePath = str_replace($keepPath, '', $sPath);
  148 +
  149 + /*
  150 + * For windows the pre drive letter needs to be removed for it to work with the pclzip class
  151 + */
  152 + if (stristr(PHP_OS,'WIN')) {
  153 + $sPath = end(explode(':', $sPath));
  154 + }
  155 +
  156 + //Chopping the last ds to make the keepPath contain an actual folder name
  157 + $aDir = explode($ds, $sPath);
  158 + $cutOff = count($aDir);
  159 + for ($i = 0; $i < $cutOff; $i++) {
  160 + echo $aDir[$i] . "\n";
  161 + $excludePath .= $aDir[$i] . '/';
  162 + }
  163 +
156 164 return $excludePath;
157 165 }
158 166  
... ...