[СДЕЛАЙ САМ] Загрузка файлов в медиа источник с фронта.
Приветствую. Данный кейс был мною использован для загрузки файлов с фронта в облако Selectel. Однако можно использовать любой источник файлов созданный в Modx Revolution 2.6.x. Если же нужен именно Selectel обязательно требуется установить компонент Swift.
Чтобы загрузить файлы нужна форма. Её делаем с помощью AjaxForm+FormIt. Нам понадобится хук, который будет подключать класс и вызывать функцию загрузки файлов.
Метод uploadFiles() принимает два обязательных параметра:
$fieldname — ключ в массиве $_FILES, или имя поля для загрузки файлов в вашей форме;
$filesource — id источника файлов, в который требуется производить загрузку.
Кроме того можно передать третьим параметром $internalPath путь внутри источника файлов для сортировки файлов по папкам. По умолчанию этот параметр имеет значение '/{year}/{month}/{day}/', где значения в квадратных скобках будут заменены на текущие год, месяц, день, за это отвечает метод preparePath().
Четвёртый параметр метода uploadFiles() это $ctx — контекст, по умолчанию имеет значение 'web'. В ответ метод uploadFiles() возвращает массив массивами данных о каждом загруженном файле.
!!! ВАЖНО!!! Ни каких проверок при загрузке файлов не производится, я их делал средствами JavaScript на клиенте.
Огромное спасибо за код @Наумов Алексей, который написал EasyComm из которого и был взят код класса, надеюсь Алексей не расстроится.
Чтобы загрузить файлы нужна форма. Её делаем с помощью AjaxForm+FormIt. Нам понадобится хук, который будет подключать класс и вызывать функцию загрузки файлов.
Метод uploadFiles() принимает два обязательных параметра:
$fieldname — ключ в массиве $_FILES, или имя поля для загрузки файлов в вашей форме;
$filesource — id источника файлов, в который требуется производить загрузку.
Кроме того можно передать третьим параметром $internalPath путь внутри источника файлов для сортировки файлов по папкам. По умолчанию этот параметр имеет значение '/{year}/{month}/{day}/', где значения в квадратных скобках будут заменены на текущие год, месяц, день, за это отвечает метод preparePath().
Четвёртый параметр метода uploadFiles() это $ctx — контекст, по умолчанию имеет значение 'web'. В ответ метод uploadFiles() возвращает массив массивами данных о каждом загруженном файле.
!!! ВАЖНО!!! Ни каких проверок при загрузке файлов не производится, я их делал средствами JavaScript на клиенте.
Огромное спасибо за код @Наумов Алексей, который написал EasyComm из которого и был взят код класса, надеюсь Алексей не расстроится.
Поблагодарить автора
Отправить деньги