function upload_file_to_aposter($page_fname, $ftp_con, $ftp_dir = '') { global $tmp; if ($ftp_dir != '') { $remote_file_path = $ftp_dir . '/' . $page_fname; } else { $remote_file_path = $page_fname; } $file = 'tmp/' . $tmp . '/' . $page_fname; if (!@ftp_put($ftp_con, $remote_file_path, $file, FTP_BINARY)) { //Если произошла ошибка загрузки, разрываем соединение и подключамся заново //не более $num_connect раз echo "Произошла ошибка загрузки, разрываем соединение и пробуем подключиться повторно.<br>\n"; ftp_close($ftp_con); sleep(10); $ftp_con = connect_to_ftp(); if (!$ftp_con) { echo "Повторно подключиться не удалось.<br>\n"; return false; exit; } else { echo "Повторное подключение произведено успешно.<br>\n Пробуем залить страницу.<br>\n"; if (!@ftp_put($ftp_con, $remote_file_path, $file, FTP_ASCII)) { echo "Вторая неудачная попытка заливки страницы.<br>\n"; return false; exit; } } } else { return true; } }
function upload_folder($source, $destin = '') { //Заливаем файлы из папки $source на хост //$destin поддиректория на хосте global $ftp_con, $ftp_dir, $ascii_arr; if ($destin != '') { $destin = $destin . '/'; } if ($fh = opendir($source)) { while (false !== ($file = readdir($fh))) { if ($file != "." && $file != "..") { //если нужен ascii режим if (in_array(get_ext($file), $ascii_arr)) { $upload_file = ftp_put($ftp_con, $ftp_dir . '/' . $destin . $file, $source . "/" . $file, FTP_ASCII); } else { $upload_file = ftp_put($ftp_con, $ftp_dir . '/' . $destin . $file, $source . "/" . $file, FTP_BINARY); } if (!$upload_file) { //Если произошла ошибка загрузки, разрываем соединение и подключамся заново echo "Произошла ошибка загрузки страницы из папки {$destin}, разрываем соединение и пробуем подключиться повторно.<br>\n"; ftp_close($ftp_con); sleep(1); $ftp_con = connect_to_ftp(); if (!$ftp_con) { echo "Повторно подключиться не удалось.<br>\n"; return false; exit; } else { echo "Повторное подключение произведено успешно.<br>\n Пробуем залить страницу.<br>\n"; if (in_array(get_ext($file), $ascii_arr)) { $upload_file = ftp_put($ftp_con, $ftp_dir . '/' . $destin . $file, $source . "/" . $file, FTP_ASCII); } else { $upload_file = ftp_put($ftp_con, $ftp_dir . '/' . $destin . $file, $source . "/" . $file, FTP_BINARY); } if (!$upload_file) { echo "Вторая неудачная попытка заливки файла из папки {$destin}.<br>\n"; return false; } } } } } closedir($fh); } return true; }
//Вычисляем значение шаблона макроса [COUNTER] $counter_tpl = @file_get_contents('data/counter.txt'); //массив расширений для текстовой передачи $ascii_arr = array('txt', 'css', 'js', 'htm', 'html', 'php', 'asp', 'xml', 'htaccess'); if (!is_dir("tmp/" . $tmp)) { $td = mkdir("tmp/" . $tmp); } chmod("tmp/" . $tmp, 0777); //Директория для скриптов редиректа текущего задания $script_dir = "tmp/" . $tmp . "/scripts"; if (!is_dir($script_dir)) { $td = mkdir($script_dir, 0777); } chmod($script_dir, 0777); //Подключаемся к фтп-хосту $ftp_con = connect_to_ftp($passive_mode); if (!$ftp_con) { echo 'Невозможно соединиться с сервером'; set_status('dorgen_tasks', $id_task, 'dor_status', 'error'); exit; } //Заливаем на хост папку с дополнительными файлами шаблона, если она есть upload_tpl_folder_to_host(); //Создаем файл редиректа и заливаем на хост create_upload_redirect(); //------- Загружаем словари --------// $theme = 'theme_' . $id_theme; $theme_base_dict = 'data/dict/themes/' . $theme . '/base.txt'; if (file_exists($theme_base_dict)) { $base_dict = file_get_contents($theme_base_dict); } else {
$folder_to_upload = 'data/tpl/' . $tpl_folder . '/i'; if ($fh = opendir($folder_to_upload)) { while (false !== ($file = readdir($fh))) { if ($file != "." && $file != "..") { //если нужен ascii режим if (in_array(get_ext($file), $ascii_arr)) { $upload_file = @ftp_put($ftp_con, $ftp_dir . '/i/' . $file, $folder_to_upload . "/" . $file, FTP_ASCII); } else { $upload_file = @ftp_put($ftp_con, $ftp_dir . '/i/' . $file, $folder_to_upload . "/" . $file, FTP_BINARY); } if (!$upload_file) { //Если произошла ошибка загрузки, разрываем соединение и подключамся заново echo "Произошла ошибка загрузки картинки, разрываем соединение и пробуем подключиться повторно.<br>\n"; ftp_close($ftp_con); //sleep(1); $ftp_con = connect_to_ftp(); if (!$ftp_con) { echo "Повторно подключиться не удалось.<br>\n"; return false; exit; } else { echo "Повторное подключение произведено успешно.<br>\n Пробуем залить страницу.<br>\n"; if (in_array(get_ext($file), $ascii_arr)) { $upload_file = @ftp_put($ftp_con, $ftp_dir . '/i/' . $file, $folder_to_upload . "/" . $file, FTP_ASCII); } else { $upload_file = @ftp_put($ftp_con, $ftp_dir . '/i/' . $file, $folder_to_upload . "/" . $file, FTP_BINARY); } if (!$upload_file) { echo "Вторая неудачная попытка заливки картинки.<br>\n"; set_status('dorgen_tasks', $id_task, 'dor_status', 'error'); exit;