ILIAS  trunk Revision v11.0_alpha-3011-gc6b235a2e85
ILIAS\FileUpload\Handler\AbstractCtrlAwareUploadHandler Class Reference

Class ilCtrlAwareUploadHandler. More...

+ Inheritance diagram for ILIAS\FileUpload\Handler\AbstractCtrlAwareUploadHandler:
+ Collaboration diagram for ILIAS\FileUpload\Handler\AbstractCtrlAwareUploadHandler:

Public Member Functions

 __construct ()
 ilUIDemoFileUploadHandlerGUI constructor. More...
 
 getFileIdentifierParameterName ()
 @inheritDoc More...
 
 getUploadURL ()
 @inheritDoc More...
 
 getExistingFileInfoURL ()
 @inheritDoc More...
 
 getFileRemovalURL ()
 @inheritDoc More...
 
 executeCommand ()
 Since this is a ilCtrl aware UploadHandler executeCommand MUST be implemented. More...
 
 getInfoResult (string $identifier)
 
 getInfoForExistingFiles (array $file_ids)
 
 supportsChunkedUploads ()
 
 executeCommand ()
 Since this is a ilCtrl aware UploadHandler executeCommand MUST be implemented. More...
 
 getFileIdentifierParameterName ()
 
 getUploadURL ()
 
 getFileRemovalURL ()
 
 getExistingFileInfoURL ()
 
 getInfoForExistingFiles (array $file_ids)
 
 getInfoResult (string $identifier)
 
 supportsChunkedUploads ()
 

Protected Member Functions

 readChunkedInformation ()
 
 getUploadResult ()
 
 getRemoveResult (string $identifier)
 

Protected Attributes

const CMD_UPLOAD = 'upload'
 
const CMD_REMOVE = 'remove'
 
const CMD_INFO = 'info'
 
HttpServices $http
 
ilCtrl $ctrl
 
FileUpload $upload
 
bool $is_chunked = false
 
int $chunk_index = 0
 
int $amount_of_chunks = 0
 
string $chunk_id = null
 
int $chunk_total_size = 0
 

Additional Inherited Members

- Data Fields inherited from ILIAS\UI\Component\Input\Field\UploadHandler
const DEFAULT_FILE_ID_PARAMETER = 'file_id'
 

Detailed Description

Constructor & Destructor Documentation

◆ __construct()

ILIAS\FileUpload\Handler\AbstractCtrlAwareUploadHandler::__construct ( )

ilUIDemoFileUploadHandlerGUI constructor.

Reimplemented in ILIAS\File\Icon\ilIconUploadHandlerGUI, ILIAS\FileUpload\Handler\AbstractCtrlAwareIRSSUploadHandler, ilMailAttachmentGUI, ilMMUploadHandlerGUI, ilMDVocabularyUploadHandlerGUI, ilSkillProfileUploadHandlerGUI, and QuestionPoolImportUploadHandlerGUI.

Definition at line 53 of file AbstractCtrlAwareUploadHandler.php.

54 {
55 global $DIC;
56 $this->ctrl = $DIC->ctrl();
57 $this->upload = $DIC->upload();
58 $this->http = $DIC->http();
59 }
static http()
Fetches the global http state from ILIAS.
global $DIC
Definition: shib_login.php:26

References $DIC, ILIAS\Repository\ctrl(), ILIAS\FileDelivery\http(), and ILIAS\Repository\upload().

+ Here is the call graph for this function:

Member Function Documentation

◆ executeCommand()

ILIAS\FileUpload\Handler\AbstractCtrlAwareUploadHandler::executeCommand ( )

Since this is a ilCtrl aware UploadHandler executeCommand MUST be implemented.

The Implementation MUST make sure, the Upload and the Removal Command are handled correctly

Implements ILIAS\FileUpload\Handler\ilCtrlAwareUploadHandler.

Reimplemented in ilIndividualAssessmentMemberGUI, and ilMailAttachmentGUI.

Definition at line 108 of file AbstractCtrlAwareUploadHandler.php.

108 : void
109 {
110 switch ($this->ctrl->getCmd()) {
111 case self::CMD_UPLOAD:
112 // Here you must save the file and tell the input item the
113 // file-id which will be a FileStorage-ID in a later version
114 // of ILIAS and for now you must implement an own ID which allows
115 // identifying the file after the request
116 try {
117 $this->readChunkedInformation();
118 $content = json_encode($this->getUploadResult());
119 } catch (\Throwable $t) {
120 $content = json_encode(
121 new BasicHandlerResult(
124 '',
125 $t->getMessage()
126 )
127 );
128 }
129 break;
130 case self::CMD_REMOVE:
131 // here you delete the previously uploaded file again, you know
132 // which file to delete since you defined what 'my_file_id' is.
133 $file_identifier = $this->http->request()->getQueryParams()[$this->getFileIdentifierParameterName()];
134 $content = json_encode($this->getRemoveResult($file_identifier));
135 break;
136 case self::CMD_INFO:
137 // here you give info about an already existing file
138 // return a JsonEncoded \ILIAS\FileUpload\Handler\FileInfoResult
139 $file_identifier = $this->http->request()->getQueryParams()[$this->getFileIdentifierParameterName()];
140 $content = json_encode($this->getInfoResult($file_identifier));
141 break;
142 default:
143 $content = '';
144 break;
145 }
146 $response = $this->http->response()->withBody(Streams::ofString($content));
147 $this->http->saveResponse($response);
148 $this->http->sendResponse();
149 $this->http->close();
150 }
static ofString(string $string)
Creates a new stream with an initial value.
Definition: Streams.php:41
$response
Definition: xapitoken.php:93

References $response, ILIAS\FileUpload\Handler\AbstractCtrlAwareUploadHandler\CMD_INFO, ILIAS\FileUpload\Handler\AbstractCtrlAwareUploadHandler\CMD_REMOVE, ILIAS\FileUpload\Handler\AbstractCtrlAwareUploadHandler\CMD_UPLOAD, ILIAS\Repository\ctrl(), ILIAS\FileUpload\Handler\AbstractCtrlAwareUploadHandler\getFileIdentifierParameterName(), ILIAS\FileUpload\Handler\AbstractCtrlAwareUploadHandler\getInfoResult(), ILIAS\FileUpload\Handler\AbstractCtrlAwareUploadHandler\getRemoveResult(), ILIAS\FileUpload\Handler\AbstractCtrlAwareUploadHandler\getUploadResult(), ILIAS\FileDelivery\http(), ILIAS\Filesystem\Stream\Streams\ofString(), ILIAS\FileUpload\Handler\AbstractCtrlAwareUploadHandler\readChunkedInformation(), and ILIAS\FileUpload\Handler\HandlerResult\STATUS_FAILED.

+ Here is the call graph for this function:

◆ getExistingFileInfoURL()

ILIAS\FileUpload\Handler\AbstractCtrlAwareUploadHandler::getExistingFileInfoURL ( )

@inheritDoc

Implements ILIAS\UI\Component\Input\Field\UploadHandler.

Reimplemented in ILIAS\FileUpload\Handler\AbstractCtrlAwareIRSSUploadHandler, ilIndividualAssessmentMemberGUI, ilRepoStandardUploadHandlerGUI, ilUIAsyncDemoFileUploadHandler, ilUIAsyncDemoFileUploadHandlerGUI, and ilUIDemoFileUploadHandlerGUI.

Definition at line 83 of file AbstractCtrlAwareUploadHandler.php.

83 : string
84 {
85 return $this->ctrl->getLinkTargetByClass([static::class], self::CMD_INFO);
86 }

References ILIAS\Repository\ctrl().

+ Here is the call graph for this function:

◆ getFileIdentifierParameterName()

ILIAS\FileUpload\Handler\AbstractCtrlAwareUploadHandler::getFileIdentifierParameterName ( )

@inheritDoc

Implements ILIAS\UI\Component\Input\Field\UploadHandler.

Reimplemented in ilIndividualAssessmentMemberGUI, ilMailAttachmentGUI, ilRepoStandardUploadHandlerGUI, and ilUIDemoFileUploadHandlerGUI.

Definition at line 65 of file AbstractCtrlAwareUploadHandler.php.

References ILIAS\UI\Component\Input\Field\UploadHandler\DEFAULT_FILE_ID_PARAMETER.

Referenced by ILIAS\FileUpload\Handler\AbstractCtrlAwareUploadHandler\executeCommand(), ilMMUploadHandlerGUI\getInfoForExistingFiles(), ilSkillProfileUploadHandlerGUI\getInfoForExistingFiles(), ILIAS\File\Icon\ilIconUploadHandlerGUI\getInfoForExistingFiles(), ImportUploadHandlerGUI\getInfoResult(), CustomIconUploadHandlerGUI\getInfoResult(), ilCtrlAwareStorageUploadHandler\getInfoResult(), ILIAS\FileUpload\Handler\AbstractCtrlAwareIRSSUploadHandler\getInfoResult(), TileImageUploadHandlerGUI\getInfoResult(), ilMMUploadHandlerGUI\getInfoResult(), ilMDCopyrightImageUploadHandlerGUI\getInfoResult(), ilMDVocabularyUploadHandlerGUI\getInfoResult(), ilSkillProfileUploadHandlerGUI\getInfoResult(), ILIAS\User\Settings\NewAccountMail\UploadHandlerGUI\getInfoResult(), ILIAS\File\Icon\ilIconUploadHandlerGUI\getInfoResult(), CustomIconUploadHandlerGUI\getRemoveResult(), ImportUploadHandlerGUI\getRemoveResult(), ilCtrlAwareStorageUploadHandler\getRemoveResult(), ILIAS\FileUpload\Handler\AbstractCtrlAwareIRSSUploadHandler\getRemoveResult(), TileImageUploadHandlerGUI\getRemoveResult(), ilMMUploadHandlerGUI\getRemoveResult(), ilMDCopyrightImageUploadHandlerGUI\getRemoveResult(), ilMDVocabularyUploadHandlerGUI\getRemoveResult(), ilSkillProfileUploadHandlerGUI\getRemoveResult(), ILIAS\User\Settings\NewAccountMail\UploadHandlerGUI\getRemoveResult(), ILIAS\File\Icon\ilIconUploadHandlerGUI\getRemoveResult(), ilObjBibliographicUploadHandlerGUI\getUploadResult(), ilFileVersionsUploadHandlerGUI\getUploadResult(), ilCtrlAwareStorageUploadHandler\getUploadResult(), ILIAS\FileUpload\Handler\AbstractCtrlAwareIRSSUploadHandler\getUploadResult(), ImportUploadHandlerGUI\getUploadResult(), CustomIconUploadHandlerGUI\getUploadResult(), TileImageUploadHandlerGUI\getUploadResult(), ilMDCopyrightImageUploadHandlerGUI\getUploadResult(), ilMDVocabularyUploadHandlerGUI\getUploadResult(), ilOrgUnitTypeUploadHandlerGUI\getUploadResult(), ilStudyProgrammeTypeUploadHandlerGUI\getUploadResult(), ILIAS\User\Settings\NewAccountMail\UploadHandlerGUI\getUploadResult(), ilFileVersionsUploadHandlerGUI\processChunckedUpload(), and ILIAS\FileUpload\Handler\AbstractCtrlAwareIRSSUploadHandler\processChunckedUpload().

+ Here is the caller graph for this function:

◆ getFileRemovalURL()

ILIAS\FileUpload\Handler\AbstractCtrlAwareUploadHandler::getFileRemovalURL ( )

@inheritDoc

Implements ILIAS\UI\Component\Input\Field\UploadHandler.

Reimplemented in ILIAS\FileUpload\Handler\AbstractCtrlAwareIRSSUploadHandler, ilRepoStandardUploadHandlerGUI, ilUIAsyncDemoFileUploadHandler, ilUIAsyncDemoFileUploadHandlerGUI, and ilUIDemoFileUploadHandlerGUI.

Definition at line 92 of file AbstractCtrlAwareUploadHandler.php.

92 : string
93 {
94 return $this->ctrl->getLinkTargetByClass([static::class], self::CMD_REMOVE);
95 }

References ILIAS\Repository\ctrl().

+ Here is the call graph for this function:

◆ getInfoForExistingFiles()

◆ getInfoResult()

◆ getRemoveResult()

◆ getUploadResult()

◆ getUploadURL()

ILIAS\FileUpload\Handler\AbstractCtrlAwareUploadHandler::getUploadURL ( )

@inheritDoc

Implements ILIAS\UI\Component\Input\Field\UploadHandler.

Reimplemented in ILIAS\FileUpload\Handler\AbstractCtrlAwareIRSSUploadHandler, ilIndividualAssessmentMemberGUI, ilRepoStandardUploadHandlerGUI, ilUIAsyncDemoFileUploadHandler, ilUIAsyncDemoFileUploadHandlerGUI, and ilUIDemoFileUploadHandlerGUI.

Definition at line 74 of file AbstractCtrlAwareUploadHandler.php.

74 : string
75 {
76 return $this->ctrl->getLinkTargetByClass([static::class], self::CMD_UPLOAD);
77 }

References ILIAS\Repository\ctrl().

+ Here is the call graph for this function:

◆ readChunkedInformation()

ILIAS\FileUpload\Handler\AbstractCtrlAwareUploadHandler::readChunkedInformation ( )
protected

Definition at line 97 of file AbstractCtrlAwareUploadHandler.php.

97 : void
98 {
99 $body = $this->http->request()->getParsedBody();
100 $this->chunk_id = $body['dzuuid'] ?? null;
101 $this->amount_of_chunks = (int) ($body['dztotalchunkcount'] ?? 0);
102 $this->chunk_index = (int) ($body['dzchunkindex'] ?? 0);
103 $this->chunk_total_size = (int) ($body['dztotalfilesize'] ?? 0);
104 $this->is_chunked = ($this->chunk_id !== null && $this->amount_of_chunks > 0);
105 }

References ILIAS\FileDelivery\http(), and ILIAS\Repository\int().

Referenced by ILIAS\FileUpload\Handler\AbstractCtrlAwareUploadHandler\executeCommand().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ supportsChunkedUploads()

ILIAS\FileUpload\Handler\AbstractCtrlAwareUploadHandler::supportsChunkedUploads ( )
Returns
bool if this uploadhandler chan handle Chunked Uploads. These come in multiple requests and must be combined to a single file. If your UploadHandler can handle Chunked Uploads, you can use a UI\Component\Input\Field\Upload\File with .

Implements ILIAS\UI\Component\Input\Field\UploadHandler.

Reimplemented in ilObjFileUploadHandlerGUI, and ilFileVersionsUploadHandlerGUI.

Definition at line 164 of file AbstractCtrlAwareUploadHandler.php.

164 : bool
165 {
166 return false;
167 }

Field Documentation

◆ $amount_of_chunks

int ILIAS\FileUpload\Handler\AbstractCtrlAwareUploadHandler::$amount_of_chunks = 0
protected

Definition at line 45 of file AbstractCtrlAwareUploadHandler.php.

◆ $chunk_id

string ILIAS\FileUpload\Handler\AbstractCtrlAwareUploadHandler::$chunk_id = null
protected

Definition at line 46 of file AbstractCtrlAwareUploadHandler.php.

◆ $chunk_index

int ILIAS\FileUpload\Handler\AbstractCtrlAwareUploadHandler::$chunk_index = 0
protected

Definition at line 44 of file AbstractCtrlAwareUploadHandler.php.

◆ $chunk_total_size

int ILIAS\FileUpload\Handler\AbstractCtrlAwareUploadHandler::$chunk_total_size = 0
protected

Definition at line 47 of file AbstractCtrlAwareUploadHandler.php.

◆ $ctrl

ilCtrl ILIAS\FileUpload\Handler\AbstractCtrlAwareUploadHandler::$ctrl
protected

Definition at line 40 of file AbstractCtrlAwareUploadHandler.php.

◆ $http

HttpServices ILIAS\FileUpload\Handler\AbstractCtrlAwareUploadHandler::$http
protected

Definition at line 39 of file AbstractCtrlAwareUploadHandler.php.

◆ $is_chunked

bool ILIAS\FileUpload\Handler\AbstractCtrlAwareUploadHandler::$is_chunked = false
protected

Definition at line 43 of file AbstractCtrlAwareUploadHandler.php.

◆ $upload

FileUpload ILIAS\FileUpload\Handler\AbstractCtrlAwareUploadHandler::$upload
protected

Definition at line 41 of file AbstractCtrlAwareUploadHandler.php.

◆ CMD_INFO

const ILIAS\FileUpload\Handler\AbstractCtrlAwareUploadHandler::CMD_INFO = 'info'
protected

◆ CMD_REMOVE

const ILIAS\FileUpload\Handler\AbstractCtrlAwareUploadHandler::CMD_REMOVE = 'remove'
protected

◆ CMD_UPLOAD

const ILIAS\FileUpload\Handler\AbstractCtrlAwareUploadHandler::CMD_UPLOAD = 'upload'
protected

The documentation for this class was generated from the following file: