PHP Sample for FileCloud API

Before you try this code, make sure you have installed PHP cURL,

The sample for FileCloud API "loginguest" , "getfilelist" and "upload" uses PHP cURL


<?php

 function getCurlValue($filen, $mimetype = '') {
        // PHP 5.5 introduced a CurlFile object that deprecates the old @filename syntax
        // See: https://wiki.php.net/rfc/curl-file-upload
        if (function_exists('curl_file_create')) { 
            return curl_file_create(realpath($filen), $mimetype, $filen);
        }   
        
        // Use the old style if using an older version of PHP
        $value = '@' . realpath($filen);
        
        return $value;
    }

$cookie_jar = tempnam('/tmp','cookie');
  
// OPTIONS
$username = "USER";
$password = "PASSWORD";
$serverurl = "http://URL";
$pathval = "/SHARED/fcteamfolder/HR/Policies";
$filename = 'helloworld.txt'; // name of the file to upload
$filefullpath = 'helloworld.txt'; // Full path to file to upload 
  
//assign post data
$param = array('userid' => $username,'password' => $password);

$api = "loginguest";
$url= $serverurl."/core/".$api;

$ch = curl_init($url);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS,$param);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_jar);
curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_jar);
$data = curl_exec($ch);
curl_close($ch);
 
$xmlstr = new \SimpleXMLElement($data);
$result = $xmlstr->command->result;
if($result == 1)
{
    echo "Profile Logged in Successfully";
         
            // getfilelist api call
            $api = "getfilelist";
            $path = $pathval;
  
            //assign post data
            $param = array('path' =>$path);
 
            $url= $serverurl."/core/".$api;
            $ch = curl_init($url);
            curl_setopt($ch, CURLOPT_POST, 1);
            curl_setopt($ch, CURLOPT_POSTFIELDS, $param);
            curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
            curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_jar);
            curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_jar);
            $data = curl_exec($ch);
            curl_close($ch);
 
            $xmlstr = new \SimpleXMLElement($data);
            $total = $xmlstr->meta->total;
            if($total == 0)
            {
                echo "</br>"."No of file's in the system";
            }
            else
            {
                echo "</br>"."Total no. of files:".$total;
                $count = 0;
                    foreach ($xmlstr->entry as $file)
                    {
                        echo "</br>".++$count.".".$file->name;
                    }
            }
     
            //upload api call
            $api = "upload";
            $appnamevalue = "explorer";
            $pathvalue = $pathval;
            $offset = '0';
            $complete = '1';
			
			$cfile = getCurlValue($filefullpath);
			$post = array('file_contents' => $cfile);
  
           $url= $serverurl."/core/upload?appname=explorer" . $appnamevalue . '&path=' . $pathvalue . '&offset=0&complete='.$complete.'&filename=' . $filename;
           $ch = curl_init($url);
           curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
           curl_setopt($ch, CURLOPT_POST, 1);
           curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
           curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_jar);
           curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_jar);
           $data = curl_exec($ch);
           curl_close($ch);
 
 
           if($data = "OK")
           {
               echo "</br>"."File uploaded Successfully";
           }
           else
           {
               echo $data;
           }
}
else
{
    echo "Error:".$xmlstr->command->message;
}
?>