Простая работа с Dropbox API
if (isset($node[‘children’])) printTree($node[‘children’]);
echo ‘</li>’;
}
echo ‘</ul>’;
}
}
/**
* Приводим к нормальному виду глобальный массив $_FILES
*
* @param array $files
* @return array
*/
function normalizeFilesArray($files = [])
{
$result = [];
foreach ($files as $file) {
if (!is_array($file[‘name’])) {
$result[] = $file;
continue;
}
foreach ($file[‘name’] as $idx => $name) {
$result[$idx] = [
‘name’ => $name,
‘type’ => $file[‘type’][$idx],
‘tmp_name’ => $file[‘tmp_name’][$idx],
‘error’ => $file[‘error’][$idx],
‘size’ => $file[‘size’][$idx]
];
}
}
return $result;
}
/**
* Вспомогательная функция для отладки
*
* @param $data
*/
function varDumper($data)
{
echo ‘<pre>’;
print_r($data);
echo ‘</pre>’;
}
В принципе код содержит комментарии.
Не забудьте изменить настройки для приложения Dropbox на свои.
$app = new DropboxApp( 'tb5xrifyj8xi4ks', '98iz6k4tgsovxu5', 'rst_zIkorMAAAAAAAAAADMzQHRGVGR0Z1VEcRb7fValB5oWtKfUgfpArSLmSCD6k' );
Рекурсивная функция makeTree() создана для создания вложенного дерева файлов и папок. Работает не так быстро, но для примера пойдет.
Отмечу, что массив содержит такое поле как размер файла, которое не используется при выводе. При желании Вы сможете самостоятельно добавить данное поле при выводе дерева.
Функция printTree() предназначена для формирования и вывода дерева файлов и папок в нужном нам виде. Остальные функции являются вспомогательными.
Листинг файла для отображения создания новой папки.
<h3>Новая папка</h3> <form method="post"> <label>Название папки<br> <input type="text" name="newFolder" value=""> </label> <input type="submit" value="Создать"> </form>
Листинг файла для отображения загрузки файлов.
<h3>Загрузить файлы</h3> <form method="post" enctype="multipart/form-data"> <label>Выберите файлы:<br> <input type="file" name="Files[]" multiple> </label><br> <p> <input type="submit" value="Загрузить файлы"> </p> </form>
В конце статьи добавлю ссылку на архив (если кто-то не хочет заморачиваться с composer).
А это пример дерева файлов и папок, размещенных на Dropbox.
Надеюсь кому-то пригодится. Планируется добавить еще несколько подобных примеров, но для API других сервисов.
Если появились вопросы, пишите. Спасибо и до новых встреч.
Полезные ссылки
- Dropbox SDK v2 for PHP
- Пример работы с Dropbox API (исходники на github)
- Sample Dropbox API (исходники в архиве zip)
require(«vendor/autoload.php»);
— Откуда это родилось в коде то?
в https://github.com/kunalvarma05/dropbox-php-sdk — нет такого ни разу
Добрый день! В начале статьи написано, что подразумевается, умеете работать с Composer.
Если выполнить установку через composer
, то обычно появляется папка vendor. Вот там обычно есть такой файл. В данном случае он нужен для автозагрузки.