require_once getinfo('common_dir') . 'uploads.php'; // функции загрузки // параметры для mso_upload // конфиг CI-библиотеки upload $mso_upload_ar1 = array('upload_path' => getinfo('uploads_dir') . $current_dir, 'allowed_types' => $allowed_types); $mso_upload_ar2 = array('userfile_title' => $post['f_userfile_title'], 'fn_mso_descritions' => $fn_mso_descritions, 'userfile_resize' => isset($post['f_userfile_resize']), 'userfile_resize_size' => $post['f_userfile_resize_size'], 'userfile_water' => isset($post['f_userfile_water']), 'userfile_water_file' => getinfo('uploads_dir') . 'watermark.png', 'water_type' => $post['f_water_type'], 'userfile_mini' => isset($post['f_userfile_mini']), 'userfile_mini_size' => $post['f_userfile_mini_size'], 'mini_type' => $post['f_mini_type'], 'prev_size' => 100, 'message1' => ''); // запомним указанные размеры и выставим их для полей формы вновь $f_userfile_resize = isset($post['f_userfile_resize']); $f_userfile_resize_size = $post['f_userfile_resize_size']; $f_userfile_water = isset($post['f_userfile_water']); $f_water_type = $post['f_water_type']; $f_userfile_mini = isset($post['f_userfile_mini']); $f_userfile_mini_size = $post['f_userfile_mini_size']; $f_mini_type = $post['f_mini_type']; // подготовим массив $_FILES - у нас множественная загрузка $new_files = mso_prepare_files('f_userfile'); $res = false; // результат загрузки // формируем поэлементно с загрузкой файлов foreach ($new_files as $key => $val) { $_FILES[$key] = $val; // формируем $_FILES для одиночного файла $res = mso_upload($mso_upload_ar1, $key, $mso_upload_ar2); unset($_FILES[$key]); } if ($res) { echo '<div class="update">' . t('Загрузка выполнена') . '</div>'; } else { echo '<div class="error">' . t('Возникли ошибки при загрузке') . '</div>'; } // после загрузки сразу обновим массив описаний - он ниже используется
function forms_files_post($files) { // возвращать нужно данные для $prefs if (!$files) { return false; } // файлы не нужны if (!isset($_FILES)) { return false; } // не были отправлены файлы require_once getinfo('common_dir') . 'uploads.php'; // функции загрузки $_FILES = mso_prepare_files('forms_files'); // переформатируем массив присланных файлов // формирование папки для временных файлов вложений $cache_folder = getinfo('cache_dir') . 'forms_attaches/'; if (!file_exists($cache_folder)) { mkdir($cache_folder, 0666); } // параметры для mso_upload // конфиг CI-библиотеки upload $mso_upload_ar1 = array('upload_path' => $cache_folder, 'allowed_types' => $files['file_type'], 'max_size' => $files['file_max_size'], 'overwrite' => true); $mso_upload_ar2 = array('userfile_resize' => false, 'userfile_water' => false, 'userfile_mini' => false, 'prev_size' => false, 'mini_make' => false, 'prev_make' => false, 'message1' => ''); $CI =& get_instance(); $file_attaches = array(); foreach ($_FILES as $f_key => $f_info) { ob_start(); $res = mso_upload($mso_upload_ar1, $f_key, $mso_upload_ar2); $msg = ob_get_contents(); // сообщения, если были ошибки ob_end_clean(); if (!$msg && $res) { $up_data = $CI->upload->data(); // формируем список вложений к письму $file_attaches[] = $up_data['full_path']; } else { // ошибки не выводим // $out .= '<div class="message error small">' . strip_tags($msg) . '</div>'; break; } } return $file_attaches; }