Search code examples
dropboxdropbox-apidropbox-php

Mulitiple Files upload to Dropbox by PHP API


I was tried to upload files using Dropbox PHP Api . its worked perfectly . Is there any option in Dropbox api for multiple file uploads . or any asynchronous uploading concept is there in php ? . Currently i am using oauth2.0 for app signin .

 /**
 * Uploads a physical file from disk
 * Dropbox impose a 150MB limit to files uploaded via the API. If the file
 * exceeds this limit or does not exist, an Exception will be thrown
 * @param  string      $file      Absolute path to the file to be uploaded
 * @param  string|bool $filename  The destination filename of the uploaded file
 * @param  string      $path      Path to upload the file to, relative to root
 * @param  boolean     $overwrite Should the file be overwritten? (Default: true)
 * @return object      stdClass
 */
public function putFile($file, $filename = false, $path = '', $overwrite = true)
{
    if (file_exists($file)) {
        if (filesize($file) <= 157286400) {
            $call = 'files/' . $this->root . '/' . $this->encodePath($path);
            // If no filename is provided we'll use the original filename
            $filename = (is_string($filename)) ? $filename : basename($file);
            $params = array(
                'filename' => $filename,
                'file' => '@' . str_replace('\\', '/', $file) . ';filename=' . $filename,
                'overwrite' => (int) $overwrite,
            );

            return $this->fetch('POST', self::CONTENT_URL, $call, $params);

        }
        throw new Exception('File exceeds 150MB upload limit');
    }

    // Throw an Exception if the file does not exist
    throw new Exception('Local file ' . $file . ' does not exist');
}

This script i am using


Solution

  • The Dropbox API does not currently offer any bulk or batch uploading, but we're tracking this as a feature request.

    That being the case, if you want to run this code in an async fashion, you can do so by running it in the background on another thread. There are other posts that cover this, e.g.: