Простая работа с 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.

Пример дерева файлов и папок на Dropbox

Надеюсь кому-то пригодится. Планируется добавить еще несколько подобных примеров, но для API других сервисов.

Если появились вопросы, пишите. Спасибо и до новых встреч.

Полезные ссылки

  1. Dropbox SDK v2 for PHP
  2. Пример работы с Dropbox API (исходники на github)
  3. Sample Dropbox API (исходники в архиве zip)

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

2 thoughts on “Простая работа с Dropbox API

    • 29.03.2019 в 16:51
      Permalink

      Добрый день! В начале статьи написано, что подразумевается, умеете работать с Composer.
      Если выполнить установку через composer

      $ php composer require kunalvarma05/dropbox-php-sdk

      , то обычно появляется папка vendor. Вот там обычно есть такой файл. В данном случае он нужен для автозагрузки.

Добавить комментарий

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: