0

I want to create the folder dynamically on dropbox and i am using the below code but it gives me error please help me

function CreateFolder($path) {
    return $this->apiCall("fileops/create_folder", "POST", array('root'=> $this->rootPath, 'path' => $path));
}
$x = 'test';    
CreateFolder($x);

But it gives me the error

Parse error: syntax error, unexpected '$x' (T_VARIABLE), expecting function (T_FUNCTION) in /home/stsgbnet/public_html/stockpile/DropPHP-master/DropboxClient.php on line 451

My complete code is here

http://pastebin.com/HnPvV4b0

Jha
  • 23
  • 10

1 Answers1

2

Since CreateFolder function seems to be in a class ($this->apiCall points to that), $x should be encapsulated in a function (that is the error that's shown). So to make it work, just call it from outside class.

You are using DropboxClient.php so following sample.php from this package your create a php file and put the following code on it:

<?php

// these 2 lines are just to enable error reporting and disable output buffering (don't include this in you application!)
error_reporting(E_ALL);
enable_implicit_flush();
// -- end of unneeded stuff

// if there are many files in your Dropbox it can take some time, so disable the max. execution time
set_time_limit(0);

require_once("DropboxClient.php");

// you have to create an app at https://www.dropbox.com/developers/apps and enter details below:
$dropbox = new DropboxClient(array(
    'app_key' => "", 
    'app_secret' => "",
    'app_full_access' => false,
),'en');


// first try to load existing access token
$access_token = load_token("access");
if(!empty($access_token)) {
    $dropbox->SetAccessToken($access_token);
    echo "loaded access token:";
    print_r($access_token);
}
elseif(!empty($_GET['auth_callback'])) // are we coming from dropbox's auth page?
{
    // then load our previosly created request token
    $request_token = load_token($_GET['oauth_token']);
    if(empty($request_token)) die('Request token not found!');

    // get & store access token, the request token is not needed anymore
    $access_token = $dropbox->GetAccessToken($request_token);   
    store_token($access_token, "access");
    delete_token($_GET['oauth_token']);
}

// checks if access token is required
if(!$dropbox->IsAuthorized())
{
    // redirect user to dropbox auth page
    $return_url = "http://".$_SERVER['HTTP_HOST'].$_SERVER['SCRIPT_NAME']."?auth_callback=1";
    $auth_url = $dropbox->BuildAuthorizeUrl($return_url);
    $request_token = $dropbox->GetRequestToken();
    store_token($request_token, $request_token['t']);
    die("Authentication required. <a href='$auth_url'>Click here.</a>");
}

echo "<pre>";
echo "<b>Account:</b>\r\n";
print_r($dropbox->GetAccountInfo());

// Here will create the folder.
$dropbox->CreateFolder('test');


function store_token($token, $name)
{
    if(!file_put_contents("tokens/$name.token", serialize($token)))
        die('<br />Could not store token! <b>Make sure that the directory `tokens` exists and is writable!</b>');
}

function load_token($name)
{
    if(!file_exists("tokens/$name.token")) return null;
    return @unserialize(@file_get_contents("tokens/$name.token"));
}

function delete_token($name)
{
    @unlink("tokens/$name.token");
}

function enable_implicit_flush()
{
    @apache_setenv('no-gzip', 1);
    @ini_set('zlib.output_compression', 0);
    @ini_set('implicit_flush', 1);
    for ($i = 0; $i < ob_get_level(); $i++) { ob_end_flush(); }
    ob_implicit_flush(1);
    echo "<!-- ".str_repeat(' ', 2000)." -->";
}

?>

Hope it helps.

ZeroWorks
  • 1,618
  • 1
  • 18
  • 22
  • it gives me the following error Parse error: syntax error, unexpected 'class' (T_CLASS), expecting function (T_FUNCTION) in /home/stsgbnet/public_html/stockpile/DropPHP-master/DropboxClient.php on line 447 – Jha Jun 19 '14 at 07:00
  • My code is too long actually so when i am not able to post my code here but i am using Dropboxclient.php inside that page there is a method name is CreateFolder – Jha Jun 19 '14 at 07:13
  • Please tell my how can i post the long code on stackoverflow – Jha Jun 19 '14 at 07:28
  • Just do what I suggested, should work for you. You're modifing a class and what you want is instantiate... – ZeroWorks Jun 19 '14 at 07:54
  • it gives th this error Uncaught exception 'DropboxException' with message 'Parameter not found: oauth_token' in /home/stsgbnet/public_html/stockpile/DropPHP-master/DropboxClient.php:616 Stack trace: #0 /home/stsgbnet/public_html/stockpile/DropPHP-master/DropboxClient.php(636): DropboxClient->apiCall('fileops/create_...', 'POST', Array) #2 /home/stsgbnet/public_html/stockpile/DropPHP-master/test.php(9):DropboxClient::checkForError(Object(stdClass)) #1 /home/stsgbnet/public_html/stockpile/DropPHP-master/DropboxClient.php(454): DropboxClient->CreateFolder('test') #3 {main} thrown – Jha Jun 19 '14 at 08:05
  • I have added the app_secret parameter but it gives me the same error – Jha Jun 19 '14 at 08:15
  • I am not able to find out the issue that why i am not able to create a folder please help me – Jha Jun 19 '14 at 08:28