ILIAS  trunk Revision v11.0_alpha-3011-gc6b235a2e85
ILIAS\FileUpload\Processor\FilenameSanitizerPreProcessor Class Reference

Class FilenameSanitizerPreProcessor. More...

+ Inheritance diagram for ILIAS\FileUpload\Processor\FilenameSanitizerPreProcessor:
+ Collaboration diagram for ILIAS\FileUpload\Processor\FilenameSanitizerPreProcessor:

Public Member Functions

 process (FileStream $stream, Metadata $metadata)
 @inheritDoc More...
 
 process (FileStream $stream, Metadata $metadata)
 This method gets invoked by the file upload service to process the file with the help of the processor. More...
 

Private Member Functions

 normalizeRelativePath (string $path)
 

Detailed Description

Class FilenameSanitizerPreProcessor.

PreProcessor which overrides the filename with a given one

Author
Fabian Schmid fs@st.nosp@m.uder.nosp@m.-raim.nosp@m.ann..nosp@m.ch
Since
5.3
Version
1.0.0

Definition at line 35 of file FilenameSanitizerPreProcessor.php.

Member Function Documentation

◆ normalizeRelativePath()

ILIAS\FileUpload\Processor\FilenameSanitizerPreProcessor::normalizeRelativePath ( string  $path)
private

Definition at line 51 of file FilenameSanitizerPreProcessor.php.

51 : string
52 {
53 $path = str_replace('\\', '/', $path);
54 $path = preg_replace('#\p{C}+#u', '', $path);
55 $parts = [];
56
57 foreach (explode('/', (string) $path) as $part) {
58 switch ($part) {
59 case '':
60 case '.':
61 break;
62
63 case '..':
64 if (empty($parts)) {
65 throw new \LogicException(
66 'Path is outside of the defined root, path: [' . $path . ']'
67 );
68 }
69 array_pop($parts);
70 break;
71
72 default:
73 $parts[] = $part;
74 break;
75 }
76 }
77
78 return implode('/', $parts);
79 }
$path
Definition: ltiservices.php:30
if($clientAssertionType !='urn:ietf:params:oauth:client-assertion-type:jwt-bearer'|| $grantType !='client_credentials') $parts
Definition: ltitoken.php:61

References $parts, and $path.

◆ process()

ILIAS\FileUpload\Processor\FilenameSanitizerPreProcessor::process ( FileStream  $stream,
Metadata  $metadata 
)

@inheritDoc

Implements ILIAS\FileUpload\Processor\PreProcessor.

Definition at line 40 of file FilenameSanitizerPreProcessor.php.

40 : ProcessingStatus
41 {
42 $filename = $metadata->getFilename();
43 // remove some special characters
45
46 $metadata->setFilename($filename);
47
48 return new ProcessingStatus(ProcessingStatus::OK, 'Filename changed');
49 }
$filename
Definition: buildRTE.php:78
getFilename()
The filename supplied by the browser.
Definition: Metadata.php:76
setFilename(string $filename)
Overwrite the current filename.
Definition: Metadata.php:89
static sanitizeFileName(string $filename)
Definition: Util.php:48

References $filename, ILIAS\FileUpload\DTO\Metadata\getFilename(), ILIAS\FileUpload\DTO\ProcessingStatus\OK, ILIAS\Filesystem\Util\sanitizeFileName(), and ILIAS\FileUpload\DTO\Metadata\setFilename().

+ Here is the call graph for this function:

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