$mso_upload_ar2['userfile_water'] = true; $mso_upload_ar2['watermark_type'] = isset($options['watermark_type']) && $options['watermark_type'] != '' ? $options['watermark_type'] : mso_get_option('watermark_type', 'general', '1'); $water_file = getinfo('plugins_dir') . basename(dirname(__FILE__)) . '/images/' . 'watermark.png'; if (file_exists($water_file)) { $mso_upload_ar2['userfile_water_file'] = $water_file; } else { $water_file = getinfo('uploads_dir') . 'watermark.png'; if (file_exists($water_file)) { $mso_upload_ar2['userfile_water_file'] = $water_file; } else { $mso_upload_ar2['userfile_water_file'] = false; } } } ob_start(); $res = mso_upload($mso_upload_ar1, 'attach', $mso_upload_ar2); $msg = ob_get_contents(); ob_end_clean(); if (!$msg && $res) { $up_data = $CI->upload->data(); # формирование ответа при загрузке нового файла $out = array('name' => $up_data['file_name'], 'size' => $up_data['file_size'], 'type' => $up_data['file_type'], 'deleteUrl' => getinfo('site_url') . basename(dirname(__FILE__)) . '/upload?file=' . $up_data['file_name'] . '&_method=DELETE', 'deleteType' => "POST", 'deleteWithCredentials' => true); # Если мы не редактируем страницу, то создаём файл с идентификатором сессии if (!$is_edit) { touch(getinfo('uploads_dir') . $folder . '/' . $up_data['file_name'] . '.' . $MSO->data['session']['session_id']); # $_FILES['attach']['name'] } } else { # Ошибка загрузки файла $out = array('name' => $_FILES['attach']['name'], 'size' => $_FILES['attach']['size'], 'type' => $_FILES['attach']['type'], 'error' => strip_tags($msg)); }
$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>'; } // после загрузки сразу обновим массив описаний - он ниже используется if (file_exists($fn_mso_descritions)) { // массив данных: fn => описание ) $mso_descritions = unserialize(read_file($fn_mso_descritions)); // получим из файла все описания } else { $mso_descritions = array(); }
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; }