Мультизагрузка изображений
Простой (самый простой) способ реализовать мультизагрузку картинок.
В шаблоне правим window_load_img.tpl, делаем массив img_file[] и дописываем multiple
И ActionAjax.class.php, вот функция EventUploadImage() целиком
такие дела
В шаблоне правим window_load_img.tpl, делаем массив img_file[] и дописываем multiple
<input type="file" name="img_file[]" id="img_file" value="" class="input-text input-width-full" multiple />
И ActionAjax.class.php, вот функция EventUploadImage() целиком
/** * Загрузка изображения * */ protected function EventUploadImage() { /** * Т.к. используется обработка отправки формы, то устанавливаем тип ответа 'jsonIframe' (тот же JSON только обернутый в textarea) * Это позволяет избежать ошибок в некоторых браузерах, например, Opera */ $this->Viewer_SetResponseAjax('jsonIframe',false); /** * Пользователь авторизован? */ if (!$this->oUserCurrent) { $this->Message_AddErrorSingle($this->Lang_Get('need_authorization'),$this->Lang_Get('error')); return; } $sFile=null; if (isPost('img_url') && $_REQUEST['img_url']!='' && $_REQUEST['img_url']!='http://') { /** * Загрузка файла по URl */ $sFile=$this->Topic_UploadTopicImageUrl($_REQUEST['img_url'],$this->oUserCurrent); switch (true) { case is_string($sFile): break; case ($sFile==ModuleImage::UPLOAD_IMAGE_ERROR_READ): $this->Message_AddErrorSingle($this->Lang_Get('uploadimg_url_error_read'),$this->Lang_Get('error')); return; case ($sFile==ModuleImage::UPLOAD_IMAGE_ERROR_SIZE): $this->Message_AddErrorSingle($this->Lang_Get('uploadimg_url_error_size'),$this->Lang_Get('error')); return; case ($sFile==ModuleImage::UPLOAD_IMAGE_ERROR_TYPE): $this->Message_AddErrorSingle($this->Lang_Get('uploadimg_url_error_type'),$this->Lang_Get('error')); return; default: case ($sFile==ModuleImage::UPLOAD_IMAGE_ERROR): $this->Message_AddErrorSingle($this->Lang_Get('uploadimg_url_error'),$this->Lang_Get('error')); return; } if ($sFile) { $sText=$this->Image_BuildHTML($sFile, $_REQUEST); } } else { foreach ($_FILES['img_file'] as $k=>$v){ if(is_array($v)){ foreach ($v as $sk=>$sv){ $arr[$sk][$k]=$sv; } } } $sText = ""; foreach ($arr as $_FILES['img_file']) { /** * Был выбран файл с компьютера и он успешно зугрузился? */ if (is_uploaded_file($_FILES['img_file']['tmp_name'])) { if(!$sFile=$this->Topic_UploadTopicImageFile($_FILES['img_file'],$this->oUserCurrent)) { $this->Message_AddErrorSingle($this->Lang_Get('uploadimg_file_error'),$this->Lang_Get('error')); return; } /** * Если файл успешно загружен, формируем HTML вставки и возвращаем в ajax ответе */ if ($sFile) { $sText.=$this->Image_BuildHTML($sFile, $_REQUEST); } } } //foreach } $this->Viewer_AssignAjax('sText',$sText); }
такие дела
Большинство рестораторов западной Сибири и Дальнего востока выбирают для автоматизации своих заведений r-keeper подробная инфа тут.
8 комментариев
max_upload_filesize и
post_max_size d php.ini
Первый параметр отвечает за максимальный размер одного загружаемого файла, а второй — за максимальный размер запроса. Поэтому если у вас сумма размеров файлов превышает размер post_max_size, то ничего грузиться не будет.