private function uploadBulkFile() { $newLimit = ceil(((filesize($_FILES['BulkImportRedirectsFile']['tmp_name']) / 1024 / 1024)*2) + 8); $oldLimit = (int)str_replace('M', '', @ini_get('memory_limit')); if($newLimit > $oldLimit) { @ini_set('memory_limit', $newLimit . 'M'); } GetLib('class.urls'); GetLib('class.redirects'); if(substr(isc_strtolower($_FILES['BulkImportRedirectsFile']['name']), -4) == '.xml') { $xml = new SimpleXMLElement($_FILES['BulkImportRedirectsFile']['tmp_name'], null, true); $urls = $xml->children(); foreach($urls as $thisUrl) { $url = (string)$thisUrl->loc; $url = ISC_REDIRECTS::normalizeURLForDatabase($url); if ($url === false) { continue; } $InsertData = array( 'redirectassoctype' => ISC_REDIRECTS::REDIRECT_TYPE_NOREDIRECT, 'redirectassocid'=> 0, 'redirectpath' => '', 'redirectmanual' => '', 'redirectpath' => $url, ); $GLOBALS['ISC_CLASS_DB']->InsertQuery('redirects', $InsertData); } } else { // must be a CSV $importer = new ISC_ADMIN_CSVPARSER(); $importer->OpenCSVFile($_FILES['BulkImportRedirectsFile']['tmp_name'], 0); // skip header line if required if (isset($_POST['Headers'])) { $importer->FetchNextRecord(); } while(($record = $importer->FetchNextRecord()) !== false) { $redirectPath = ISC_REDIRECTS::normalizeURLForDatabase($record[0]); if ($redirectPath === false) { continue; } $InsertData = array( 'redirectassoctype' => ISC_REDIRECTS::REDIRECT_TYPE_NOREDIRECT, 'redirectassocid'=> 0, 'redirectpath' => '', 'redirectmanual' => '', 'redirectpath' => $redirectPath, ); if(!empty($record[2])) { $label = ISC_REDIRECTS::getTypeFromLabel($record[1]); if (is_numeric($record[2]) && $label !== false) { $InsertData['redirectassocid'] = (int)$record[2]; $InsertData['redirectassoctype'] = $label; } } elseif (!empty($record[1])) { $InsertData['redirectmanual'] = ISC_REDIRECTS::normalizeNewURLForDatabase($record[1]); $InsertData['redirectassoctype'] = ISC_REDIRECTS::REDIRECT_TYPE_MANUAL; } $GLOBALS['ISC_CLASS_DB']->InsertQuery('redirects', $InsertData); } } ISC_JSON::$useTextarea = true; ISC_JSON::output(GetLang('ImportSuccessful'), true); }