[YandexDiskUploader] Загрузка файлов в Яндекс.Диск
На фронтенде используется Dropzone JS. Внешний вид довольно легко кастомизируется — достаточно указать путь к CSS-файлу в соответствующей системной настройке.
Загрузка файлов осуществляется не в файловую систему сайта, а на Яндекс.Диск, доступ к которому нужно будет предоставить при установке дополнения. Сделать это достаточно однажды — токен сохраняется в системных настройках и используется в дальнейшем без всяких запросов.
Сниппет YandexDiskUploader выводит область для загрузки файлов. Расположить её можно в любом месте на странице — даже вне тега form. При вызове сниппета в параметре &inputId можно указать id инпута, в который после загрузки будет подставлена ссылка на папку в Диске с загруженными файлами. Эту ссылку можно отправить в письме или сохранить в базе данных. На странице дополнения есть пример добавления загрузки файлов в форму обратной связи.
Логику обработки ответа сервера можно переопределить, указав путь к JS-файлу в системной настройке.
Стоимость дополнения 290 руб. Приобрести можно как обычно, в магазине Modstore.pro:
modstore.pro/yandexdiskuploader
Комментарии: 11
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.


Возникла проблема на боевом сервере.
Файлы успешно прикрепляются, в папке tmp на хостинге создается соответствующий по размеру временный файл, но на яндекс.диске файлы загруженные весят 0 байт, т.е. пустые…
Такое впечатление, что сниппет просто создает файлы с указанным именем\расширением, но не копирует файлы.
Ошибок ни js ни php никаких не выдает.
На этой же базе данных, с этими же файлами на локальном сервере всё работает как часы.
В какую сторону копать?
Заранее спасибо!
Спасибо за отклик и отличное дополнение!
Проблему решили.
Судя по всему проблема появилась после обновления на сервере библиотеки libcurl (было 7.62, стало 7.64.1)
Необходимо было в сниппете добавить:
а перед этим согласно мануалу php еще и
итого у нас получилось:
Т.е. upload должен работать, а не put
Но, нет…
Ссылку на загруженный файл на Яндекс.Диске мы отправляли в письме менеджеру.
Так вот в названии папки "MODX Яндекс.Диск" присутствует пробел и с ним были проблемы.
Ссылка не открывалась или вела на 404 страницу.
Поэтому пробел заменили на "MODX%20Яндекс.Диск"
Но для этого сделали отдельную переменную и плейсхолдер.
Т.к. сниппет наоборот с таким путём работать не сможет.