original_string: public function chunkedUpload($file, $filename = false, $path = '', $overwrite = true, $offset = 0, $uploadID = null)
      {
          if (file_exists($file)) {
              if ($handle = @fopen($file, 'r')) {
              	// Seek to the correct position on the file pointer
  			    fseek($handle, $offset);
  
                  // Read from the file handle until EOF, uploading each chunk
                  while ($data = fread($handle, $this->chunkSize)) {
                      // Open a temporary file handle and write a chunk of data to it
                      $chunkHandle = fopen('php://temp', 'rw');
                      fwrite($chunkHandle, $data);
                      
                      // Set the file, request parameters and send the request
                      $this->OAuth->setInFile($chunkHandle);
                      $params = array('upload_id' => $uploadID, 'offset' => $offset);
                      
                      try {
                      	// Attempt to upload the current chunk
                      	$response = $this->fetch('PUT', self::CONTENT_URL, 'chunked_upload', $params);
                      } catch (Exception $e) {
                      	$response = $this->OAuth->getLastResponse();
                      	if ($response['code'] == 400) {
                      		// Incorrect offset supplied, return expected offset and upload ID
                      		$uploadID = $response['body']->upload_id;
                      		$offset = $response['body']->offset;
                      		return array('uploadID' => $uploadID, 'offset' => $offset);
                      	} else {
                      		// Re-throw the caught Exception
                      		throw $e;
                      	}
                      }
                                       
                      // On subsequent chunks, use the upload ID returned by the previous request
                      if (isset($response['body']->upload_id)) {
                          $uploadID = $response['body']->upload_id;
                      }
                      
                      // Set the data offset
                      if (isset($response['body']->offset)) {
                          $offset = $response['body']->offset;
                      }
  
                      // Close the file handle for this chunk
                      fclose($chunkHandle);
                  }
  
                  // Complete the chunked upload
                  $filename = (is_string($filename)) ? $filename : basename($file);
                  $call = 'commit_chunked_upload/' . $this->root . '/' . $this->encodePath(rtrim($path, '/') . '/' . $filename);
                  $params = array('overwrite' => (int) $overwrite, 'upload_id' => $uploadID);
                  $response = $this->fetch('POST', self::CONTENT_URL, $call, $params);
                  return $response;
              } else {
                  throw new Exception('Could not open ' . $file . ' for reading');
              }
          }
          
          // Throw an Exception if the file does not exist
          throw new Exception('Local file ' . $file . ' does not exist');
      }
code: public function chunkedUpload($file, $filename = false, $path = '', $overwrite = true, $offset = 0, $uploadID = null)
      {
          if (file_exists($file)) {
              if ($handle = @fopen($file, 'r')) {
              	// Seek to the correct position on the file pointer
  			    fseek($handle, $offset);
  
                  // Read from the file handle until EOF, uploading each chunk
                  while ($data = fread($handle, $this->chunkSize)) {
                      // Open a temporary file handle and write a chunk of data to it
                      $chunkHandle = fopen('php://temp', 'rw');
                      fwrite($chunkHandle, $data);
                      
                      // Set the file, request parameters and send the request
                      $this->OAuth->setInFile($chunkHandle);
                      $params = array('upload_id' => $uploadID, 'offset' => $offset);
                      
                      try {
                      	// Attempt to upload the current chunk
                      	$response = $this->fetch('PUT', self::CONTENT_URL, 'chunked_upload', $params);
                      } catch (Exception $e) {
                      	$response = $this->OAuth->getLastResponse();
                      	if ($response['code'] == 400) {
                      		// Incorrect offset supplied, return expected offset and upload ID
                      		$uploadID = $response['body']->upload_id;
                      		$offset = $response['body']->offset;
                      		return array('uploadID' => $uploadID, 'offset' => $offset);
                      	} else {
                      		// Re-throw the caught Exception
                      		throw $e;
                      	}
                      }
                                       
                      // On subsequent chunks, use the upload ID returned by the previous request
                      if (isset($response['body']->upload_id)) {
                          $uploadID = $response['body']->upload_id;
                      }
                      
                      // Set the data offset
                      if (isset($response['body']->offset)) {
                          $offset = $response['body']->offset;
                      }
  
                      // Close the file handle for this chunk
                      fclose($chunkHandle);
                  }
  
                  // Complete the chunked upload
                  $filename = (is_string($filename)) ? $filename : basename($file);
                  $call = 'commit_chunked_upload/' . $this->root . '/' . $this->encodePath(rtrim($path, '/') . '/' . $filename);
                  $params = array('overwrite' => (int) $overwrite, 'upload_id' => $uploadID);
                  $response = $this->fetch('POST', self::CONTENT_URL, $call, $params);
                  return $response;
              } else {
                  throw new Exception('Could not open ' . $file . ' for reading');
              }
          }
          
          // Throw an Exception if the file does not exist
          throw new Exception('Local file ' . $file . ' does not exist');
      }
code_tokens: public function chunkedUpload ( $ file , $ filename = false , $ path = '' , $ overwrite = true , $ offset = 0 , $ uploadID = null ) { if ( file_exists ( $ file ) ) { if ( $ handle = @ fopen ( $ file , 'r' ) ) { // Seek to the correct position on the file pointer
   fseek ( $ handle , $ offset ) ; // Read from the file handle until EOF, uploading each chunk
   while ( $ data = fread ( $ handle , $ this -> chunkSize ) ) { // Open a temporary file handle and write a chunk of data to it
   $ chunkHandle = fopen ( 'php://temp' , 'rw' ) ; fwrite ( $ chunkHandle , $ data ) ; // Set the file, request parameters and send the request
   $ this -> OAuth -> setInFile ( $ chunkHandle ) ; $ params = array ( 'upload_id' => $ uploadID , 'offset' => $ offset ) ; try { // Attempt to upload the current chunk
   $ response = $ this -> fetch ( 'PUT' , self :: CONTENT_URL , 'chunked_upload' , $ params ) ; } catch ( Exception $ e ) { $ response = $ this -> OAuth -> getLastResponse ( ) ; if ( $ response [ 'code' ] == 400 ) { // Incorrect offset supplied, return expected offset and upload ID
   $ uploadID = $ response [ 'body' ] -> upload_id ; $ offset = $ response [ 'body' ] -> offset ; return array ( 'uploadID' => $ uploadID , 'offset' => $ offset ) ; } else { // Re-throw the caught Exception
   throw $ e ; } } // On subsequent chunks, use the upload ID returned by the previous request
   if ( isset ( $ response [ 'body' ] -> upload_id ) ) { $ uploadID = $ response [ 'body' ] -> upload_id ; } // Set the data offset
   if ( isset ( $ response [ 'body' ] -> offset ) ) { $ offset = $ response [ 'body' ] -> offset ; } // Close the file handle for this chunk
   fclose ( $ chunkHandle ) ; } // Complete the chunked upload
   $ filename = ( is_string ( $ filename ) ) ? $ filename : basename ( $ file ) ; $ call = 'commit_chunked_upload/' . $ this -> root . '/' . $ this -> encodePath ( rtrim ( $ path , '/' ) . '/' . $ filename ) ; $ params = array ( 'overwrite' => ( int ) $ overwrite , 'upload_id' => $ uploadID ) ; $ response = $ this -> fetch ( 'POST' , self :: CONTENT_URL , $ call , $ params ) ; return $ response ; } else { throw new Exception ( 'Could not open ' . $ file . ' for reading' ) ; } } // Throw an Exception if the file does not exist
   throw new Exception ( 'Local file ' . $ file . ' does not exist' ) ; }
docstring: Uploads large files to Dropbox in mulitple chunks
  @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 stdClass
docstring_tokens: Uploads large files to Dropbox in mulitple chunks