В какую папку будут загружены файлы из формы «Загрузить файл»?
В какую папку будут загружены файлы из формы «Загрузить файл»?
Для того, чтобы, увидеть ответ, необходимо приобрести одну из следующих подписок:
Купить подписку можно на главной странице сайта
О проекте
Мы публикуем ответы на тесты, необходимые для получения сертификатов по 1С — Битрикс. Данные сертификаты требуются для получения компетенции и партнерства.
Разделы
Ответы
- Контент — менеджер
- Администратор.Базовый
- Администратор.Модули
- Bitrix Framework
- Пользователь Сервиса Битрикс24
В какую папку будут загружены файлы из формы загрузить файл
В какую папку будут загружены файлы из формы «Загрузить файл»?
- Курс на выбор
- 1С-Битрикс
- Полный пакет
Опуликовано: 20 февраля 2019
Просмотров: 4731
Поиск по ответам:
- Контент-менеджер
- Администратор. Базовый
- Администратор сервиса Битрикс24 (коробочная версия)
- Пользователь коробочной версии Битрикс24
- Пользователь сервиса Битрикс24
- Администратор. Модули
- Администратор. Бизнес
- Интеграция с 1С
- Разработчик Bitrix Framework
- Технология Композитный сайт
- Продвижение сайта и Маркетинг
- Установка и настройка
- Многосайтовость
- Курс для хостеров
- Базовый курс партнера Битрикс24
- Курс менеджеров по продажам Битрикс24
- Менеджер по продажам Битрикс24. Продолжение.
- Онлайн-продажи в Битрикс24
- Сквозная аналитика в Битрикс24.CRM
- CRM-маркетинг в Битрикс24
- Битрикс24.Офис
- Битрикс24.CRM
- Задачи и проекты
- Автоматизация Бизнес-Процессов
- 1С-Битрикс24: Интернет-магазин + CRM
- Аналитик
- Приложение с заявками от клиентов
- Продажа подписки Битрикс24.Маркет Плюс
bitrix-otvet.ru © 2023. Все права защищены
В какую папку будут загружены файлы из формы загрузить файл
В какую папку будут загружены файлы из формы «Загрузить файл»?
- Курс на выбор
- Битрикс24
- Полный пакет
Опуликовано: 26 января 2019
Просмотров: 2261
Поиск по ответам:
- Контент-менеджер
- Администратор. Базовый
- Администратор сервиса Битрикс24 (коробочная версия)
- Пользователь коробочной версии Битрикс24
- Пользователь сервиса Битрикс24
- Администратор. Модули
- Администратор. Бизнес
- Интеграция с 1С
- Разработчик Bitrix Framework
- Технология Композитный сайт
- Продвижение сайта и Маркетинг
- Установка и настройка
- Многосайтовость
- Курс для хостеров
- Базовый курс партнера Битрикс24
- Курс менеджеров по продажам Битрикс24
- Менеджер по продажам Битрикс24. Продолжение.
- Онлайн-продажи в Битрикс24
- Сквозная аналитика в Битрикс24.CRM
- CRM-маркетинг в Битрикс24
- Битрикс24.Офис
- Битрикс24.CRM
- Задачи и проекты
- Автоматизация Бизнес-Процессов
- 1С-Битрикс24: Интернет-магазин + CRM
- Аналитик
- Приложение с заявками от клиентов
- Продажа подписки Битрикс24.Маркет Плюс
bitrix-otvet.ru © 2023. Все права защищены
Мультизагрузка файлов
Не так давно в свет вышел довольно интересный и красивый загрузчик файлов, который сейчас во всю используется в блогах и живой ленте.
А вот описания к нему я не нашел. Восполним пробел.
Компонент называется main.file.input и лежит в системных компонентах. Все что он умеет — это загружать и сохранять файлы через CFile::SaveFile(), удалять через CFile::Delete() и все. Файлы по дефолту привязываются к главному модулю main и сохраняются в одноименной папке относительно /upload. Сам компонент возвращает некий универсальный идентификатор. Без него невозможна работа callback-ов при загрузки файла и после.
Сценарий работы компонента
Все основные js-функции лежат в script.js. При загрузке страницы формируется js-объект с заданными параметрами (это происходит в шаблоне). Далее, либо при загрузке страницы, либо по событию (клик, аякс-загрузка контента, ховер и пр.) срабатывают кастомные js-события, они вызывают функции, которые открывают нужные дивы и таблицы, ибо, по дефолту они скрыты. При этом срабатывает функция window.BlogBFileDialogUploader.prototype.GetUploadFileName, которая формирует форму для отправки файла и фрейм.
При отправке формы срабатывает window.BlogBFileDialogUploader.prototype.CallSubmit, которая отправляет файл. По дефолту файл отправляется на ту страницу, на которой находится сам компонент. Путь берется из параметра this.uploadFileUrl, а он из параметров при создании объекта. При случае можно менять на какой угодно. В общем и целом, лучше чтоб файл загружался на страницу, где находится компонент, потому как в самом компоненте идет проверка основных параметров и там формируется объект для работы с callback-ами. Без него у вас файл может загрузиться и сохраниться нормально, но индикатор загрузки зависнет, как будто файл не загрузился и процесс завис. Но обо всем по порядку.
Пользование компонента.
Вызываем компонент:
IncludeComponent("bitrix:main.file.input", "drag_n_drop", array( "INPUT_NAME"=>"TEST_NAME_INPUT", "MULTIPLE"=>"Y", "MODULE_ID"=>"main", "MAX_FILE_SIZE"=>"", "ALLOW_UPLOAD"=>"A", "ALLOW_UPLOAD_EXT"=>"" ), false );?>
Параметры:
INPUT_NAME // уникальный name инпута, без него выдает ошибку
MULTIPLE => Y || N — позволяет или не позволяет множественную загрузку
MODULE_ID => main || iblock || blog || forum и пр. имя модуля, к которому файл привязан будет и в какую папку попадет относительно upload.
MAX_FILE_SIZE // максимальный размер файла (вроде в байтах)
ALLOW_UPLOAD A || F || I — какой тип файлов будем грузить: F — файлы, I — картинки, A — все подряд.
ALLOW_UPLOAD_EXT => «*.zip,*.rar,*.doc и пр.» // какие расширения файлов можно грузить. Работает если ALLOW_UPLOAD => F
Шаблон компонента всяко придется править, так что можно сразу копировать в шаблон .default. при этом в самом шаблоне поправьте пути к js и css файлам, которые грузятся по средствам js-функций.
После этого на странице вы не увидите ничего Для этого надо в шаблоне избавиться от некоторых мало понятных проверок и функции.
Убираем php-вставки в скрипте, в шаблоне, примерно строки 117, 154 и 171. Тут идет проверка php — callback — функции, в момент загрузки страницы, она пустая и компонент скрыт. Активируется после перетаскивания файла в дропзону. После этого компонент нормально отображается на странице при ее загрузке.
Сам загрузчик формируется объектом:
BfileFD = new BlogBFileDialog(< 'mode' : variant, // simple | extended вариант отображения - простой загрузчик или драг-н-дроп 'CID' : "", // контрольная строка 'upload_path' : "", // путь, куда грузить файлы 'multiple' : =( $arParams['MULTIPLE'] == 'N' ? 'false' : 'true' )?>, // загрузка нескольких файлов одновременно 'controller': , // #id - основного div-а 'inputName' : "", 'fileInput' : "file-fileUploader-", 'fileInputName' : "mfi_files[]", // массив, который формируется отправке файлов 'msg' : < // всякие сообщения 'loading' : "", 'file_exists':"", 'upload_error':"", 'access_denied':" " > >);
Если посмотреть функцию window.BlogBFileDialogUploader.prototype.CreateElements — там формируется фрейм и форма для отправки файла. Если нужно вместе с файлом передать еще какие-либо параметры, то добавляем свои инпуты.
window.BlogBFileDialogUploader.prototype.Callback — срабатывает после загрузки и содержит массив с инфой о файле. Сюда можно впихнуть все что получится в $arResult. С этим массивом можно работать и использовать дальше после загрузки.
При использовании компонента в режиме ajax — т.е. при загрузке компонента на страницу или в popup-окно с помощью аякса, не забудьте поменять параметр «upload_path» в объекте формирования загрузчика в шаблоне компонента. И если не хочется заморачиваться файлом-приемником, то поставьте туда этот же компонент.