????JFIF??x?x????'
| Server IP : 79.136.114.73 / Your IP : 216.73.216.25 Web Server : Apache/2.4.7 (Ubuntu) PHP/5.5.9-1ubuntu4.29 OpenSSL/1.0.1f System : Linux b8009 3.13.0-170-generic #220-Ubuntu SMP Thu May 9 12:40:49 UTC 2019 x86_64 User : www-data ( 33) PHP Version : 5.5.9-1ubuntu4.29 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority, MySQL : ON | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : ON Directory : /var/www/icad.astacus.se/sharepoint/vendor/vgrem/php-spo/src/SharePoint/ |
Upload File : |
<?php
namespace Office365\SharePoint;
use Office365\Runtime\Actions\ClientAction;
use Office365\Runtime\ClientResult;
use Office365\Runtime\Types\Guid;
/**
*
*/
class UploadSession
{
public function __construct()
{
$this->uploadSessionId = Guid::newGuid();
$this->targetFile = null;
}
/**
* @param FileCollection $files
* @param string $sourcePath
* @param string $targetFileName
* @param callable $chunkUploaded
* @param int $chunkSize
*/
function buildQuery($files, $sourcePath, $targetFileName, callable $chunkUploaded=null,$chunkSize = 1048576){
$ctx= $files->getContext();
$fileSize = filesize($sourcePath);
$firstChunk = true;
$handle = fopen($sourcePath, 'rb');
$offset = 0;
$fileCreationInformation = new FileCreationInformation();
$fileCreationInformation->Url = $targetFileName;
$uploadFile = $files->add($fileCreationInformation);
$ctx->executeQuery();
while (!feof($handle)) {
$buffer = fread($handle, $chunkSize);
$bytesRead = ftell ( $handle );
if ($firstChunk) {
$uploadFile->startUpload($this->uploadSessionId, $buffer);
$firstChunk = false;
} elseif ($fileSize == $bytesRead) {
$this->targetFile = $uploadFile->finishUpload($this->uploadSessionId,$offset, $buffer);
} else {
$uploadFile->continueUpload($this->uploadSessionId,$offset, $buffer);
}
$offset = $bytesRead;
}
fclose($handle);
if($chunkUploaded) {
$ctx->afterExecuteQuery(function (ClientAction $query) use($chunkUploaded,$ctx)
{
$returnType = $query->ReturnType;
if($returnType instanceof ClientResult){
call_user_func($chunkUploaded, $returnType->getValue());
}
elseif ($returnType instanceof File){
call_user_func($chunkUploaded, $returnType->getLength());
}
});
}
}
/**
* @return File
*/
function getFile(){
return $this->targetFile;
}
/**
* @var Guid
*/
private $uploadSessionId;
/**
* @var File
*/
private $targetFile;
}