‪TYPO3CMS  ‪main
TYPO3\CMS\Core\Resource\Driver\LocalDriver Class Reference
Inheritance diagram for TYPO3\CMS\Core\Resource\Driver\LocalDriver:
TYPO3\CMS\Core\Resource\Driver\AbstractHierarchicalFilesystemDriver TYPO3\CMS\Core\Resource\Driver\StreamableDriverInterface TYPO3\CMS\Core\Resource\Driver\AbstractDriver TYPO3\CMS\Core\Resource\Driver\DriverInterface

Public Member Functions

 __construct (array $configuration=[])
 
int mergeConfigurationCapabilities ($capabilities)
 
 processConfiguration ()
 
 initialize ()
 
string null getPublicUrl ($identifier)
 
string getRootLevelFolder ()
 
string getDefaultFolder ()
 
string createFolder ($newFolderName, $parentFolderIdentifier='', $recursive=false)
 
array getFileInfoByIdentifier ($fileIdentifier, array $propertiesToExtract=[])
 
array getFolderInfoByIdentifier ($folderIdentifier)
 
string sanitizeFileName ($fileName, $charset='utf-8')
 
string getFileInFolder ($fileName, $folderIdentifier)
 
array getFilesInFolder ($folderIdentifier, $start=0, $numberOfItems=0, $recursive=false, array $filenameFilterCallbacks=[], $sort='', $sortRev=false)
 
int countFilesInFolder ($folderIdentifier, $recursive=false, array $filenameFilterCallbacks=[])
 
array< string|int, getFoldersInFolder( $folderIdentifier, $start=0, $numberOfItems=0, $recursive=false, array $folderNameFilterCallbacks=[], $sort='', $sortRev=false) { return $this-> getDirectoryItemList ($folderIdentifier, $start, $numberOfItems, $folderNameFilterCallbacks, false, true, $recursive, $sort, $sortRev)
 
int countFoldersInFolder ($folderIdentifier, $recursive=false, array $folderNameFilterCallbacks=[])
 
bool int string getSpecificFileInformation ($fileIdentifier, $containerPath, $property)
 
string hash ($fileIdentifier, $hashAlgorithm)
 
string addFile ($localFilePath, $targetFolderIdentifier, $newFileName='', $removeOriginal=true)
 
bool fileExists ($fileIdentifier)
 
bool fileExistsInFolder ($fileName, $folderIdentifier)
 
bool folderExists ($folderIdentifier)
 
bool folderExistsInFolder ($folderName, $folderIdentifier)
 
string getFolderInFolder ($folderName, $folderIdentifier)
 
bool replaceFile ($fileIdentifier, $localFilePath)
 
string copyFileWithinStorage ($fileIdentifier, $targetFolderIdentifier, $fileName)
 
string moveFileWithinStorage ($fileIdentifier, $targetFolderIdentifier, $newFileName)
 
array moveFolderWithinStorage ($sourceFolderIdentifier, $targetFolderIdentifier, $newFolderName)
 
bool copyFolderWithinStorage ($sourceFolderIdentifier, $targetFolderIdentifier, $newFolderName)
 
string renameFile ($fileIdentifier, $newName)
 
array renameFolder ($folderIdentifier, $newName)
 
bool deleteFile ($fileIdentifier)
 
bool deleteFolder ($folderIdentifier, $deleteRecursively=false)
 
bool isFolderEmpty ($folderIdentifier)
 
string getFileForLocalProcessing ($fileIdentifier, $writable=true)
 
array getPermissions ($identifier)
 
bool isWithin ($folderIdentifier, $identifier)
 
string createFile ($fileName, $parentFolderIdentifier)
 
string getFileContents ($fileIdentifier)
 
int setFileContents ($fileIdentifier, $contents)
 
string getRole ($folderIdentifier)
 
 dumpFileContents ($identifier)
 
 streamFile (string $identifier, array $properties)
 
- ‪Public Member Functions inherited from ‪TYPO3\CMS\Core\Resource\Driver\AbstractHierarchicalFilesystemDriver
mixed getParentFolderIdentifierOfIdentifier ($fileIdentifier)
 
- ‪Public Member Functions inherited from ‪TYPO3\CMS\Core\Resource\Driver\AbstractDriver
 setStorageUid ($storageUid)
 
int getCapabilities ()
 
bool hasCapability ($capability)
 
string hashIdentifier ($identifier)
 
bool isCaseSensitiveFileSystem ()
 

Public Attributes

const UNSAFE_FILENAME_CHARACTER_EXPRESSION = '\\x00-\\x2C\\/\\x3A-\\x3F\\x5B-\\x60\\x7B-\\xBF'
 
 $realPath = $this->getAbsolutePath($folderIdentifier)
 
if(!is_dir($realPath)) $items = $this->retrieveFileAndFoldersInPath($realPath, $recursive, $includeFiles, $includeDirs, $sort, $sortRev)
 
 $iterator = new \ArrayIterator($items)
 
if($iterator->count()===0) $c = $numberOfItems > 0 ? $numberOfItems : - 1
 
 $items = []
 
while($iterator->valid() &&($numberOfItems===0|| $c > 0)) return $items
 

Protected Member Functions

 determineBaseUrl ()
 
string calculateBasePath (array $configuration)
 
array< string|int, getDirectoryItemList( $folderIdentifier, $start, $numberOfItems, array $filterMethods, $includeFiles=true, $includeDirs=true, $recursive=false, $sort='', $sortRev=false) { $folderIdentifier=$this-> canonicalizeAndCheckFolderIdentifier ($folderIdentifier)
 
bool applyFilterMethodsToDirectoryItem (array $filterMethods, $itemName, $itemIdentifier, $parentIdentifier)
 
array retrieveFileAndFoldersInPath ($path, $recursive=false, $includeFiles=true, $includeDirs=true, $sort='', $sortRev=false)
 
array sortDirectoryEntries ($directoryEntries, $sort='', $sortRev=false)
 
array extractFileInformation ($filePath, $containerPath, array $propertiesToExtract=[])
 
string getAbsoluteBasePath ()
 
string getAbsolutePath ($fileIdentifier)
 
string copyFileToTemporaryPath ($fileIdentifier)
 
bool recycleFileOrFolder ($filePath, $recycleDirectory)
 
array createIdentifierMap (array $filesAndFolders, $sourceFolderIdentifier, $targetFolderIdentifier)
 
string getRecycleDirectory ($path)
 
- ‪Protected Member Functions inherited from ‪TYPO3\CMS\Core\Resource\Driver\AbstractHierarchicalFilesystemDriver
bool isPathValid ($theFile)
 
string canonicalizeAndCheckFilePath ($filePath)
 
string canonicalizeAndCheckFileIdentifier ($fileIdentifier)
 
- ‪Protected Member Functions inherited from ‪TYPO3\CMS\Core\Resource\Driver\AbstractDriver
bool isValidFilename ($fileName)
 
non empty string getTemporaryPathForFile ($fileIdentifier)
 

Protected Attributes

string $absoluteBasePath
 
array $supportedHashAlgorithms = array( 'sha1', 'md5' )
 
string $baseUri
 
array $mappingFolderNameToRole
 
- ‪Protected Attributes inherited from ‪TYPO3\CMS\Core\Resource\Driver\AbstractDriver
int $capabilities = 0
 
int $storageUid
 
array $supportedHashAlgorithms = array( )
 
array $configuration = array( )
 

Detailed Description

Driver for the local file system

Definition at line 40 of file LocalDriver.php.

Constructor & Destructor Documentation

◆ __construct()

Member Function Documentation

◆ addFile()

string TYPO3\CMS\Core\Resource\Driver\LocalDriver::addFile (   $localFilePath,
  $targetFolderIdentifier,
  $newFileName = '',
  $removeOriginal = true 
)

Adds a file from the local server hard disk to a given path in TYPO3s virtual file system. This assumes that the local file exists, so no further check is done here! After a successful the original file must not exist anymore.

Parameters
string$localFilePath‪within public web path
string$targetFolderIdentifier
string$newFileName‪optional, if not given original name is used
bool$removeOriginal‪if set the original file will be removed after successful operation
Returns
‪string the identifier of the new file
Exceptions

Implements TYPO3\CMS\Core\Resource\Driver\DriverInterface.

Definition at line 778 of file LocalDriver.php.

References TYPO3\CMS\Core\Utility\PathUtility\basename(), TYPO3\CMS\Core\Resource\Driver\AbstractHierarchicalFilesystemDriver\canonicalizeAndCheckFilePath(), TYPO3\CMS\Core\Resource\Driver\LocalDriver\canonicalizeAndCheckFolderIdentifier(), TYPO3\CMS\Core\Utility\GeneralUtility\fixPermissions(), TYPO3\CMS\Core\Resource\Driver\LocalDriver\getAbsolutePath(), and TYPO3\CMS\Core\Resource\Driver\LocalDriver\sanitizeFileName().

◆ applyFilterMethodsToDirectoryItem()

bool TYPO3\CMS\Core\Resource\Driver\LocalDriver::applyFilterMethodsToDirectoryItem ( array  $filterMethods,
  $itemName,
  $itemIdentifier,
  $parentIdentifier 
)
protected

Applies a set of filter methods to a file name to find out if it should be used or not. This is e.g. used by directory listings.

Parameters
array$filterMethods‪The filter methods to use
string$itemName
string$itemIdentifier
string$parentIdentifier
Exceptions

Definition at line 419 of file LocalDriver.php.

◆ calculateBasePath()

string TYPO3\CMS\Core\Resource\Driver\LocalDriver::calculateBasePath ( array  $configuration)
protected

◆ canonicalizeAndCheckFolderIdentifier()

array<string|int, getDirectoryItemList($folderIdentifier, $start, $numberOfItems, array $filterMethods, $includeFiles = true, $includeDirs = true, $recursive = false, $sort = '', $sortRev = false) { $folderIdentifier = $this-> TYPO3\CMS\Core\Resource\Driver\LocalDriver::canonicalizeAndCheckFolderIdentifier (   $folderIdentifier)
protected

Generic wrapper for extracting a list of items from a path.

Parameters
string$folderIdentifier
int$start‪The position to start the listing; if not set, start from the beginning
int$numberOfItems‪The number of items to list; if set to zero, all items are returned
array$filterMethods‪The filter methods used to filter the directory items
bool$includeFiles
bool$includeDirs
bool$recursive
string$sort‪Property name used to sort the items. Among them may be: '' (empty, no sorting), name, fileext, size, tstamp and rw. If a driver does not support the given property, it should fall back to "name".
bool$sortRev‪TRUE to indicate reverse sorting (last to first)
Returns
‪array<string|int, string> folder identifiers (where key and value are identical, but int-like identifiers will get converted to int array keys)
Exceptions

Reimplemented from TYPO3\CMS\Core\Resource\Driver\AbstractHierarchicalFilesystemDriver.

Referenced by TYPO3\CMS\Core\Resource\Driver\LocalDriver\addFile(), TYPO3\CMS\Core\Resource\Driver\LocalDriver\copyFolderWithinStorage(), TYPO3\CMS\Core\Resource\Driver\LocalDriver\createFile(), TYPO3\CMS\Core\Resource\Driver\LocalDriver\createFolder(), TYPO3\CMS\Core\Resource\Driver\LocalDriver\createIdentifierMap(), TYPO3\CMS\Core\Resource\Driver\LocalDriver\folderExistsInFolder(), TYPO3\CMS\Core\Resource\Driver\LocalDriver\getFileInfoByIdentifier(), TYPO3\CMS\Core\Resource\Driver\LocalDriver\getFolderInfoByIdentifier(), TYPO3\CMS\Core\Resource\Driver\LocalDriver\getFolderInFolder(), TYPO3\CMS\Core\Resource\Driver\LocalDriver\moveFolderWithinStorage(), and TYPO3\CMS\Core\Resource\Driver\LocalDriver\renameFolder().

◆ copyFileToTemporaryPath()

string TYPO3\CMS\Core\Resource\Driver\LocalDriver::copyFileToTemporaryPath (   $fileIdentifier)
protected

Copies a file to a temporary path and returns that path.

Parameters
string$fileIdentifier
Returns
‪string The temporary path
Exceptions

Definition at line 954 of file LocalDriver.php.

References TYPO3\CMS\Core\Resource\Driver\LocalDriver\getAbsolutePath(), and TYPO3\CMS\Core\Resource\Driver\AbstractDriver\getTemporaryPathForFile().

Referenced by TYPO3\CMS\Core\Resource\Driver\LocalDriver\getFileForLocalProcessing().

◆ copyFileWithinStorage()

string TYPO3\CMS\Core\Resource\Driver\LocalDriver::copyFileWithinStorage (   $fileIdentifier,
  $targetFolderIdentifier,
  $fileName 
)

Copies a file within the current storage. Note that this is only about an intra-storage copy action, where a file is just copied to another folder in the same storage.

Parameters
string$fileIdentifier
string$targetFolderIdentifier
string$fileName
Returns
‪string the Identifier of the new file

Implements TYPO3\CMS\Core\Resource\Driver\DriverInterface.

Definition at line 912 of file LocalDriver.php.

References TYPO3\CMS\Core\Resource\Driver\AbstractHierarchicalFilesystemDriver\canonicalizeAndCheckFileIdentifier(), TYPO3\CMS\Core\Utility\GeneralUtility\fixPermissions(), and TYPO3\CMS\Core\Resource\Driver\LocalDriver\getAbsolutePath().

◆ copyFolderWithinStorage()

bool TYPO3\CMS\Core\Resource\Driver\LocalDriver::copyFolderWithinStorage (   $sourceFolderIdentifier,
  $targetFolderIdentifier,
  $newFolderName 
)

◆ countFilesInFolder()

int TYPO3\CMS\Core\Resource\Driver\LocalDriver::countFilesInFolder (   $folderIdentifier,
  $recursive = false,
array  $filenameFilterCallbacks = [] 
)

Returns the number of files inside the specified path

Parameters
string$folderIdentifier
bool$recursive
array$filenameFilterCallbacks‪callbacks for filtering the items
Returns
‪int Number of files in folder

Definition at line 481 of file LocalDriver.php.

References TYPO3\CMS\Core\Resource\Driver\LocalDriver\getFilesInFolder().

◆ countFoldersInFolder()

int TYPO3\CMS\Core\Resource\Driver\LocalDriver::countFoldersInFolder (   $folderIdentifier,
  $recursive = false,
array  $folderNameFilterCallbacks = [] 
)

Returns the number of folders inside the specified path

Parameters
string$folderIdentifier
bool$recursive
array$folderNameFilterCallbacks‪callbacks for filtering the items
Returns
‪int Number of folders in folder

Definition at line 516 of file LocalDriver.php.

◆ createFile()

string TYPO3\CMS\Core\Resource\Driver\LocalDriver::createFile (   $fileName,
  $parentFolderIdentifier 
)

◆ createFolder()

string TYPO3\CMS\Core\Resource\Driver\LocalDriver::createFolder (   $newFolderName,
  $parentFolderIdentifier = '',
  $recursive = false 
)

Creates a folder, within a parent folder. If no parent folder is given, a rootlevel folder will be created

Parameters
string$newFolderName
string$parentFolderIdentifier
bool$recursive
Returns
‪string the Identifier of the new folder

Implements TYPO3\CMS\Core\Resource\Driver\DriverInterface.

Definition at line 228 of file LocalDriver.php.

References TYPO3\CMS\Core\Resource\Driver\LocalDriver\canonicalizeAndCheckFolderIdentifier(), TYPO3\CMS\Core\Resource\Driver\LocalDriver\getAbsolutePath(), TYPO3\CMS\Core\Utility\GeneralUtility\mkdir(), TYPO3\CMS\Core\Utility\GeneralUtility\mkdir_deep(), TYPO3\CMS\Core\Resource\Driver\LocalDriver\sanitizeFileName(), and TYPO3\CMS\Core\Utility\GeneralUtility\trimExplode().

Referenced by TYPO3\CMS\Core\Resource\Driver\LocalDriver\getDefaultFolder().

◆ createIdentifierMap()

array TYPO3\CMS\Core\Resource\Driver\LocalDriver::createIdentifierMap ( array  $filesAndFolders,
  $sourceFolderIdentifier,
  $targetFolderIdentifier 
)
protected

Creates a map of old and new file/folder identifiers after renaming or moving a folder. The old identifier is used as the key, the new one as the value.

Parameters
string$sourceFolderIdentifier
string$targetFolderIdentifier
Returns
‪array
Exceptions
Exception

Definition at line 1003 of file LocalDriver.php.

References TYPO3\CMS\Core\Resource\Driver\AbstractHierarchicalFilesystemDriver\canonicalizeAndCheckFileIdentifier(), TYPO3\CMS\Core\Resource\Driver\LocalDriver\canonicalizeAndCheckFolderIdentifier(), and TYPO3\CMS\Core\Resource\Driver\LocalDriver\getAbsolutePath().

Referenced by TYPO3\CMS\Core\Resource\Driver\LocalDriver\moveFolderWithinStorage(), and TYPO3\CMS\Core\Resource\Driver\LocalDriver\renameFolder().

◆ deleteFile()

bool TYPO3\CMS\Core\Resource\Driver\LocalDriver::deleteFile (   $fileIdentifier)

Removes a file from the filesystem. This does not check if the file is still used or if it is a bad idea to delete it for some other reason this has to be taken care of in the upper layers (e.g. the Storage)!

Parameters
string$fileIdentifier
Returns
‪bool TRUE if deleting the file succeeded
Exceptions

Implements TYPO3\CMS\Core\Resource\Driver\DriverInterface.

Definition at line 1190 of file LocalDriver.php.

References TYPO3\CMS\Core\Resource\Driver\LocalDriver\getAbsolutePath().

◆ deleteFolder()

bool TYPO3\CMS\Core\Resource\Driver\LocalDriver::deleteFolder (   $folderIdentifier,
  $deleteRecursively = false 
)

◆ determineBaseUrl()

TYPO3\CMS\Core\Resource\Driver\LocalDriver::determineBaseUrl ( )
protected

◆ dumpFileContents()

TYPO3\CMS\Core\Resource\Driver\LocalDriver::dumpFileContents (   $identifier)

Directly output the contents of the file to the output buffer. Should not take care of header files or flushing buffer before. Will be taken care of by the Storage.

Parameters
string$identifier

Implements TYPO3\CMS\Core\Resource\Driver\DriverInterface.

Definition at line 1395 of file LocalDriver.php.

References TYPO3\CMS\Webhooks\Message\$identifier, TYPO3\CMS\Core\Resource\Driver\AbstractHierarchicalFilesystemDriver\canonicalizeAndCheckFileIdentifier(), and TYPO3\CMS\Core\Resource\Driver\LocalDriver\getAbsolutePath().

◆ extractFileInformation()

array TYPO3\CMS\Core\Resource\Driver\LocalDriver::extractFileInformation (   $filePath,
  $containerPath,
array  $propertiesToExtract = [] 
)
protected

Extracts information about a file from the filesystem.

Parameters
string$filePath‪The absolute path to the file
string$containerPath‪The relative path to the file's container
array$propertiesToExtract‪array of properties which should be returned, if empty all will be extracted
Returns
‪array

Definition at line 656 of file LocalDriver.php.

References TYPO3\CMS\Core\Resource\Driver\LocalDriver\getSpecificFileInformation().

Referenced by TYPO3\CMS\Core\Resource\Driver\LocalDriver\getFileInfoByIdentifier().

◆ fileExists()

bool TYPO3\CMS\Core\Resource\Driver\LocalDriver::fileExists (   $fileIdentifier)

◆ fileExistsInFolder()

bool TYPO3\CMS\Core\Resource\Driver\LocalDriver::fileExistsInFolder (   $fileName,
  $folderIdentifier 
)

◆ folderExists()

bool TYPO3\CMS\Core\Resource\Driver\LocalDriver::folderExists (   $folderIdentifier)

◆ folderExistsInFolder()

bool TYPO3\CMS\Core\Resource\Driver\LocalDriver::folderExistsInFolder (   $folderName,
  $folderIdentifier 
)

Checks if a folder inside a folder exists.

Parameters
string$folderName
string$folderIdentifier
Returns
‪bool

Implements TYPO3\CMS\Core\Resource\Driver\DriverInterface.

Definition at line 859 of file LocalDriver.php.

References TYPO3\CMS\Webhooks\Message\$identifier, TYPO3\CMS\Core\Resource\Driver\LocalDriver\canonicalizeAndCheckFolderIdentifier(), and TYPO3\CMS\Core\Resource\Driver\LocalDriver\folderExists().

◆ getAbsoluteBasePath()

string TYPO3\CMS\Core\Resource\Driver\LocalDriver::getAbsoluteBasePath ( )
protected

Returns the absolute path of the folder this driver operates on.

Returns
‪string

Definition at line 719 of file LocalDriver.php.

References TYPO3\CMS\Core\Resource\Driver\LocalDriver\$absoluteBasePath.

Referenced by TYPO3\CMS\Core\Resource\Driver\LocalDriver\retrieveFileAndFoldersInPath(), and TYPO3\CMS\Core\Resource\Driver\LocalDriver\sortDirectoryEntries().

◆ getAbsolutePath()

string TYPO3\CMS\Core\Resource\Driver\LocalDriver::getAbsolutePath (   $fileIdentifier)
protected

Returns the absolute path of a file or folder.

Parameters
string$fileIdentifier
Returns
‪string
Exceptions
Exception

Definition at line 731 of file LocalDriver.php.

References TYPO3\CMS\Core\Resource\Driver\AbstractHierarchicalFilesystemDriver\canonicalizeAndCheckFileIdentifier().

Referenced by TYPO3\CMS\Core\Resource\Driver\LocalDriver\addFile(), TYPO3\CMS\Core\Resource\Driver\LocalDriver\copyFileToTemporaryPath(), TYPO3\CMS\Core\Resource\Driver\LocalDriver\copyFileWithinStorage(), TYPO3\CMS\Core\Resource\Driver\LocalDriver\copyFolderWithinStorage(), TYPO3\CMS\Core\Resource\Driver\LocalDriver\createFile(), TYPO3\CMS\Core\Resource\Driver\LocalDriver\createFolder(), TYPO3\CMS\Core\Resource\Driver\LocalDriver\createIdentifierMap(), TYPO3\CMS\Core\Resource\Driver\LocalDriver\deleteFile(), TYPO3\CMS\Core\Resource\Driver\LocalDriver\deleteFolder(), TYPO3\CMS\Core\Resource\Driver\LocalDriver\dumpFileContents(), TYPO3\CMS\Core\Resource\Driver\LocalDriver\fileExists(), TYPO3\CMS\Core\Resource\Driver\LocalDriver\folderExists(), TYPO3\CMS\Core\Resource\Driver\LocalDriver\getFileContents(), TYPO3\CMS\Core\Resource\Driver\LocalDriver\getFileForLocalProcessing(), TYPO3\CMS\Core\Resource\Driver\LocalDriver\getFileInfoByIdentifier(), TYPO3\CMS\Core\Resource\Driver\LocalDriver\getFolderInfoByIdentifier(), TYPO3\CMS\Core\Resource\Driver\LocalDriver\getPermissions(), TYPO3\CMS\Core\Resource\Driver\LocalDriver\getRecycleDirectory(), TYPO3\CMS\Core\Resource\Driver\LocalDriver\hash(), TYPO3\CMS\Core\Resource\Driver\LocalDriver\isFolderEmpty(), TYPO3\CMS\Core\Resource\Driver\LocalDriver\moveFileWithinStorage(), TYPO3\CMS\Core\Resource\Driver\LocalDriver\moveFolderWithinStorage(), TYPO3\CMS\Core\Resource\Driver\LocalDriver\renameFile(), TYPO3\CMS\Core\Resource\Driver\LocalDriver\renameFolder(), TYPO3\CMS\Core\Resource\Driver\LocalDriver\replaceFile(), TYPO3\CMS\Core\Resource\Driver\LocalDriver\setFileContents(), and TYPO3\CMS\Core\Resource\Driver\LocalDriver\streamFile().

◆ getDefaultFolder()

string TYPO3\CMS\Core\Resource\Driver\LocalDriver::getDefaultFolder ( )

Returns identifier of the default folder new files should be put into.

Returns
‪string

Implements TYPO3\CMS\Core\Resource\Driver\DriverInterface.

Definition at line 209 of file LocalDriver.php.

References TYPO3\CMS\Webhooks\Message\$identifier, TYPO3\CMS\Core\Resource\Driver\LocalDriver\createFolder(), and TYPO3\CMS\Core\Resource\Driver\LocalDriver\folderExists().

◆ getDirectoryItemList()

array<string|int, getFoldersInFolder($folderIdentifier, $start = 0, $numberOfItems = 0, $recursive = false, array $folderNameFilterCallbacks = [], $sort = '', $sortRev = false) { return $this-> TYPO3\CMS\Core\Resource\Driver\LocalDriver::getDirectoryItemList (   $folderIdentifier,
  $start,
  $numberOfItems,
  $folderNameFilterCallbacks,
false  ,
true  ,
  $recursive,
  $sort,
  $sortRev 
)

Returns a list of folders inside the specified path

Parameters
string$folderIdentifier
int$start
int$numberOfItems
bool$recursive
array$folderNameFilterCallbacks‪The method callbacks to use for filtering the items
string$sort‪Property name used to sort the items. Among them may be: '' (empty, no sorting), name, fileext, size, tstamp and rw. If a driver does not support the given property, it should fall back to "name".
bool$sortRev‪TRUE to indicate reverse sorting (last to first)
Returns
‪array<string|int, string> folder identifiers (where key and value are identical, but int-like identifiers will get converted to int array keys)

Referenced by TYPO3\CMS\Core\Resource\Driver\LocalDriver\getFilesInFolder().

◆ getFileContents()

string TYPO3\CMS\Core\Resource\Driver\LocalDriver::getFileContents (   $fileIdentifier)

Returns the contents of a file. Beware that this requires to load the complete file into memory and also may require fetching the file from an external location. So this might be an expensive operation (both in terms of processing resources and money) for large files.

Parameters
string$fileIdentifier
Returns
‪string The file contents if file exists and else empty string

Implements TYPO3\CMS\Core\Resource\Driver\DriverInterface.

Definition at line 1347 of file LocalDriver.php.

References TYPO3\CMS\Core\Resource\Driver\LocalDriver\getAbsolutePath().

◆ getFileForLocalProcessing()

string TYPO3\CMS\Core\Resource\Driver\LocalDriver::getFileForLocalProcessing (   $fileIdentifier,
  $writable = true 
)

Returns (a local copy of) a file for processing it. This makes a copy first when in writable mode, so if you change the file, you have to update it yourself afterwards.

Parameters
string$fileIdentifier
bool$writable‪Set this to FALSE if you only need the file for read operations. This might speed up things, e.g. by using a cached local version. Never modify the file if you have set this flag!
Returns
‪string The path to the file on the local disk

Implements TYPO3\CMS\Core\Resource\Driver\DriverInterface.

Definition at line 1261 of file LocalDriver.php.

References TYPO3\CMS\Core\Resource\Driver\LocalDriver\copyFileToTemporaryPath(), and TYPO3\CMS\Core\Resource\Driver\LocalDriver\getAbsolutePath().

◆ getFileInfoByIdentifier()

array TYPO3\CMS\Core\Resource\Driver\LocalDriver::getFileInfoByIdentifier (   $fileIdentifier,
array  $propertiesToExtract = [] 
)

Returns information about a file.

Parameters
string$fileIdentifier‪In the case of the LocalDriver, this is the (relative) path to the file.
array$propertiesToExtract‪Array of properties which should be extracted, if empty all will be extracted
Returns
‪array
Exceptions

Implements TYPO3\CMS\Core\Resource\Driver\DriverInterface.

Definition at line 256 of file LocalDriver.php.

References TYPO3\CMS\Core\Resource\Driver\LocalDriver\canonicalizeAndCheckFolderIdentifier(), TYPO3\CMS\Core\Utility\PathUtility\dirname(), TYPO3\CMS\Core\Resource\Driver\LocalDriver\extractFileInformation(), and TYPO3\CMS\Core\Resource\Driver\LocalDriver\getAbsolutePath().

Referenced by TYPO3\CMS\Core\Resource\Driver\LocalDriver\streamFile().

◆ getFileInFolder()

string TYPO3\CMS\Core\Resource\Driver\LocalDriver::getFileInFolder (   $fileName,
  $folderIdentifier 
)

Returns a file inside the specified path

Parameters
string$fileName
string$folderIdentifier
Returns
‪string File Identifier

Implements TYPO3\CMS\Core\Resource\Driver\DriverInterface.

Definition at line 447 of file LocalDriver.php.

References TYPO3\CMS\Core\Resource\Driver\AbstractHierarchicalFilesystemDriver\canonicalizeAndCheckFileIdentifier().

◆ getFilesInFolder()

array TYPO3\CMS\Core\Resource\Driver\LocalDriver::getFilesInFolder (   $folderIdentifier,
  $start = 0,
  $numberOfItems = 0,
  $recursive = false,
array  $filenameFilterCallbacks = [],
  $sort = '',
  $sortRev = false 
)

Returns a list of files inside the specified path

Parameters
string$folderIdentifier
int$start
int$numberOfItems
bool$recursive
array$filenameFilterCallbacks‪The method callbacks to use for filtering the items
string$sort‪Property name used to sort the items. Among them may be: '' (empty, no sorting), name, fileext, size, tstamp and rw. If a driver does not support the given property, it should fall back to "name".
bool$sortRev‪TRUE to indicate reverse sorting (last to first)
Returns
‪array of FileIdentifiers

Implements TYPO3\CMS\Core\Resource\Driver\DriverInterface.

Definition at line 468 of file LocalDriver.php.

References TYPO3\CMS\Core\Resource\Driver\LocalDriver\getDirectoryItemList().

Referenced by TYPO3\CMS\Core\Resource\Driver\LocalDriver\countFilesInFolder().

◆ getFolderInfoByIdentifier()

array TYPO3\CMS\Core\Resource\Driver\LocalDriver::getFolderInfoByIdentifier (   $folderIdentifier)

◆ getFolderInFolder()

string TYPO3\CMS\Core\Resource\Driver\LocalDriver::getFolderInFolder (   $folderName,
  $folderIdentifier 
)

Returns the Identifier for a folder within a given folder.

Parameters
string$folderName‪The name of the target folder
string$folderIdentifier
Returns
‪string

Implements TYPO3\CMS\Core\Resource\Driver\DriverInterface.

Definition at line 873 of file LocalDriver.php.

References TYPO3\CMS\Core\Resource\Driver\LocalDriver\canonicalizeAndCheckFolderIdentifier().

◆ getPermissions()

array TYPO3\CMS\Core\Resource\Driver\LocalDriver::getPermissions (   $identifier)

Returns the permissions of a file/folder as an array (keys r, w) of boolean flags

Parameters
string$identifier
Returns
‪array
Exceptions
Exception

Implements TYPO3\CMS\Core\Resource\Driver\DriverInterface.

Definition at line 1276 of file LocalDriver.php.

References TYPO3\CMS\Webhooks\Message\$identifier, and TYPO3\CMS\Core\Resource\Driver\LocalDriver\getAbsolutePath().

Referenced by TYPO3\CMS\Core\Resource\Driver\LocalDriver\sortDirectoryEntries().

◆ getPublicUrl()

string null TYPO3\CMS\Core\Resource\Driver\LocalDriver::getPublicUrl (   $identifier)

Returns the public URL to a file. For the local driver, this will always return a path relative to public web path.

Parameters
string$identifier
Returns
‪string|null NULL if file is missing or deleted, the generated url otherwise

Implements TYPO3\CMS\Core\Resource\Driver\DriverInterface.

Definition at line 182 of file LocalDriver.php.

References TYPO3\CMS\Webhooks\Message\$identifier, and TYPO3\CMS\Webhooks\Message\$publicUrl.

◆ getRecycleDirectory()

string TYPO3\CMS\Core\Resource\Driver\LocalDriver::getRecycleDirectory (   $path)
protected

Get the path of the nearest recycler folder of a given $path. Return an empty string if there is no recycler folder available.

Parameters
string$path
Returns
‪string

Definition at line 1434 of file LocalDriver.php.

References TYPO3\CMS\Core\Utility\PathUtility\dirname(), TYPO3\CMS\Core\Resource\Driver\LocalDriver\getAbsolutePath(), TYPO3\CMS\Core\Resource\Driver\LocalDriver\getRole(), TYPO3\CMS\Core\Resource\Driver\LocalDriver\getRootLevelFolder(), and TYPO3\CMS\Core\Resource\FolderInterface\ROLE_RECYCLER.

Referenced by TYPO3\CMS\Core\Resource\Driver\LocalDriver\deleteFolder().

◆ getRole()

string TYPO3\CMS\Core\Resource\Driver\LocalDriver::getRole (   $folderIdentifier)

Returns the role of an item (currently only folders; can later be extended for files as well)

Parameters
string$folderIdentifier
Returns
‪string

Definition at line 1381 of file LocalDriver.php.

References TYPO3\CMS\Core\Utility\PathUtility\basename(), and TYPO3\CMS\Core\Resource\FolderInterface\ROLE_DEFAULT.

Referenced by TYPO3\CMS\Core\Resource\Driver\LocalDriver\getRecycleDirectory().

◆ getRootLevelFolder()

string TYPO3\CMS\Core\Resource\Driver\LocalDriver::getRootLevelFolder ( )

Returns the Identifier of the root level folder of the storage.

Returns
‪string

Implements TYPO3\CMS\Core\Resource\Driver\DriverInterface.

Definition at line 199 of file LocalDriver.php.

Referenced by TYPO3\CMS\Core\Resource\Driver\LocalDriver\getRecycleDirectory().

◆ getSpecificFileInformation()

◆ hash()

string TYPO3\CMS\Core\Resource\Driver\LocalDriver::hash (   $fileIdentifier,
  $hashAlgorithm 
)

Creates a (cryptographic) hash for a file.

Parameters
string$fileIdentifier
string$hashAlgorithm‪The hash algorithm to use
Returns
‪string
Exceptions

Implements TYPO3\CMS\Core\Resource\Driver\DriverInterface.

Definition at line 747 of file LocalDriver.php.

References TYPO3\CMS\Core\Resource\Driver\LocalDriver\getAbsolutePath().

◆ initialize()

TYPO3\CMS\Core\Resource\Driver\LocalDriver::initialize ( )

Initializes this object. This is called by the storage after the driver has been attached.

Implements TYPO3\CMS\Core\Resource\Driver\DriverInterface.

Definition at line 115 of file LocalDriver.php.

◆ isFolderEmpty()

bool TYPO3\CMS\Core\Resource\Driver\LocalDriver::isFolderEmpty (   $folderIdentifier)

Checks if a folder contains files and (if supported) other folders.

Parameters
string$folderIdentifier
Returns
‪bool TRUE if there are no files and folders within $folder

Implements TYPO3\CMS\Core\Resource\Driver\DriverInterface.

Definition at line 1234 of file LocalDriver.php.

References TYPO3\CMS\Core\Resource\Driver\LocalDriver\getAbsolutePath().

◆ isWithin()

bool TYPO3\CMS\Core\Resource\Driver\LocalDriver::isWithin (   $folderIdentifier,
  $identifier 
)

Checks if a given identifier is within a container, e.g. if a file or folder is within another folder. It will also return TRUE if both canonicalized identifiers are equal.

Parameters
string$folderIdentifier
string$identifier‪identifier to be checked against $folderIdentifier
Returns
‪bool TRUE if $content is within or matches $folderIdentifier

Implements TYPO3\CMS\Core\Resource\Driver\DriverInterface.

Definition at line 1298 of file LocalDriver.php.

References TYPO3\CMS\Webhooks\Message\$identifier, and TYPO3\CMS\Core\Resource\Driver\AbstractHierarchicalFilesystemDriver\canonicalizeAndCheckFileIdentifier().

◆ mergeConfigurationCapabilities()

int TYPO3\CMS\Core\Resource\Driver\LocalDriver::mergeConfigurationCapabilities (   $capabilities)

Merges the capabilities merged by the user at the storage configuration into the actual capabilities of the driver and returns the result.

Parameters
int$capabilities
Returns
‪int

Implements TYPO3\CMS\Core\Resource\Driver\DriverInterface.

Definition at line 91 of file LocalDriver.php.

References TYPO3\CMS\Core\Resource\Driver\AbstractDriver\$capabilities.

◆ moveFileWithinStorage()

string TYPO3\CMS\Core\Resource\Driver\LocalDriver::moveFileWithinStorage (   $fileIdentifier,
  $targetFolderIdentifier,
  $newFileName 
)

Moves a file within the current storage. Note that this is only about an inner-storage move action, where a file is just moved to another folder in the same storage.

Parameters
string$fileIdentifier
string$targetFolderIdentifier
string$newFileName
Returns
‪string
Exceptions

Implements TYPO3\CMS\Core\Resource\Driver\DriverInterface.

Definition at line 935 of file LocalDriver.php.

References TYPO3\CMS\Core\Resource\Driver\AbstractHierarchicalFilesystemDriver\canonicalizeAndCheckFileIdentifier(), and TYPO3\CMS\Core\Resource\Driver\LocalDriver\getAbsolutePath().

◆ moveFolderWithinStorage()

array TYPO3\CMS\Core\Resource\Driver\LocalDriver::moveFolderWithinStorage (   $sourceFolderIdentifier,
  $targetFolderIdentifier,
  $newFolderName 
)

◆ processConfiguration()

TYPO3\CMS\Core\Resource\Driver\LocalDriver::processConfiguration ( )

◆ recycleFileOrFolder()

bool TYPO3\CMS\Core\Resource\Driver\LocalDriver::recycleFileOrFolder (   $filePath,
  $recycleDirectory 
)
protected

Moves a file or folder to the given directory, renaming the source in the process if a file or folder of the same name already exists in the target path.

Parameters
string$filePath
string$recycleDirectory
Returns
‪bool

Definition at line 977 of file LocalDriver.php.

References TYPO3\CMS\Core\Utility\PathUtility\basename().

Referenced by TYPO3\CMS\Core\Resource\Driver\LocalDriver\deleteFolder().

◆ renameFile()

string TYPO3\CMS\Core\Resource\Driver\LocalDriver::renameFile (   $fileIdentifier,
  $newName 
)

◆ renameFolder()

array TYPO3\CMS\Core\Resource\Driver\LocalDriver::renameFolder (   $folderIdentifier,
  $newName 
)

◆ replaceFile()

bool TYPO3\CMS\Core\Resource\Driver\LocalDriver::replaceFile (   $fileIdentifier,
  $localFilePath 
)

Replaces the contents (and file-specific metadata) of a file object with a local file.

Parameters
string$fileIdentifier
string$localFilePath
Returns
‪bool TRUE if the operation succeeded
Exceptions

Implements TYPO3\CMS\Core\Resource\Driver\DriverInterface.

Definition at line 887 of file LocalDriver.php.

References TYPO3\CMS\Core\Utility\GeneralUtility\fixPermissions(), and TYPO3\CMS\Core\Resource\Driver\LocalDriver\getAbsolutePath().

◆ retrieveFileAndFoldersInPath()

array TYPO3\CMS\Core\Resource\Driver\LocalDriver::retrieveFileAndFoldersInPath (   $path,
  $recursive = false,
  $includeFiles = true,
  $includeDirs = true,
  $sort = '',
  $sortRev = false 
)
protected

Returns a list with the names of all files and folders in a path, optionally recursive.

Parameters
string$path‪The absolute path
bool$recursive‪If TRUE, recursively fetches files and folders
bool$includeFiles
bool$includeDirs
string$sort‪Property name used to sort the items. Among them may be: '' (empty, no sorting), name, fileext, size, tstamp and rw. If a driver does not support the given property, it should fall back to "name".
bool$sortRev‪TRUE to indicate reverse sorting (last to first)
Returns
‪array

Definition at line 536 of file LocalDriver.php.

References TYPO3\CMS\Core\Resource\Driver\LocalDriver\$iterator, TYPO3\CMS\Core\Utility\PathUtility\basename(), TYPO3\CMS\Core\Resource\Driver\LocalDriver\getAbsoluteBasePath(), and TYPO3\CMS\Core\Resource\Driver\LocalDriver\sortDirectoryEntries().

Referenced by TYPO3\CMS\Core\Resource\Driver\LocalDriver\moveFolderWithinStorage(), and TYPO3\CMS\Core\Resource\Driver\LocalDriver\renameFolder().

◆ sanitizeFileName()

string TYPO3\CMS\Core\Resource\Driver\LocalDriver::sanitizeFileName (   $fileName,
  $charset = 'utf-8' 
)

Returns a string where any character not matching [.a-zA-Z0-9_-] is substituted by '_' Trailing dots are removed

Previously in \TYPO3\CMS\Core\Utility\File\BasicFileUtility::cleanFileName()

Parameters
string$fileName‪Input string, typically the body of a fileName
string$charsetCharset of the a fileName (defaults to utf-8)
Returns
‪string Output string with any characters not matching [.a-zA-Z0-9_-] is substituted by '_' and trailing dots removed
Exceptions
Exception

Reimplemented from TYPO3\CMS\Core\Resource\Driver\AbstractDriver.

Definition at line 309 of file LocalDriver.php.

References $GLOBALS.

Referenced by TYPO3\CMS\Core\Resource\Driver\LocalDriver\addFile(), TYPO3\CMS\Core\Resource\Driver\LocalDriver\createFile(), TYPO3\CMS\Core\Resource\Driver\LocalDriver\createFolder(), TYPO3\CMS\Core\Resource\Driver\LocalDriver\renameFile(), and TYPO3\CMS\Core\Resource\Driver\LocalDriver\renameFolder().

◆ setFileContents()

int TYPO3\CMS\Core\Resource\Driver\LocalDriver::setFileContents (   $fileIdentifier,
  $contents 
)

Sets the contents of a file to the specified value.

Parameters
string$fileIdentifier
string$contents
Returns
‪int The number of bytes written to the file
Exceptions

Implements TYPO3\CMS\Core\Resource\Driver\DriverInterface.

Definition at line 1361 of file LocalDriver.php.

References TYPO3\CMS\Core\Resource\Driver\LocalDriver\getAbsolutePath().

◆ sortDirectoryEntries()

array TYPO3\CMS\Core\Resource\Driver\LocalDriver::sortDirectoryEntries (   $directoryEntries,
  $sort = '',
  $sortRev = false 
)
protected

Sort the directory entries by a certain key

Parameters
array$directoryEntries‪Array of directory entry arrays from retrieveFileAndFoldersInPath()
string$sort‪Property name used to sort the items. Among them may be: '' (empty, no sorting), name, fileext, size, tstamp and rw. If a driver does not support the given property, it should fall back to "name".
bool$sortRev‪TRUE to indicate reverse sorting (last to first)
Returns
‪array Sorted entries. Content of the keys is undefined.

Definition at line 595 of file LocalDriver.php.

References $dir, TYPO3\CMS\Core\Resource\Driver\LocalDriver\getAbsoluteBasePath(), TYPO3\CMS\Core\Resource\Driver\LocalDriver\getPermissions(), and TYPO3\CMS\Core\Resource\Driver\LocalDriver\getSpecificFileInformation().

Referenced by TYPO3\CMS\Core\Resource\Driver\LocalDriver\retrieveFileAndFoldersInPath().

◆ streamFile()

TYPO3\CMS\Core\Resource\Driver\LocalDriver::streamFile ( string  $identifier,
array  $properties 
)

Member Data Documentation

◆ $absoluteBasePath

string TYPO3\CMS\Core\Resource\Driver\LocalDriver::$absoluteBasePath
protected

The absolute base path. It always contains a trailing slash.

Definition at line 51 of file LocalDriver.php.

Referenced by TYPO3\CMS\Core\Resource\Driver\LocalDriver\calculateBasePath(), and TYPO3\CMS\Core\Resource\Driver\LocalDriver\getAbsoluteBasePath().

◆ $baseUri

string TYPO3\CMS\Core\Resource\Driver\LocalDriver::$baseUri
protected

The base URL that points to this driver's storage. As long is this is not set, it is assumed that this folder is not publicly available

Definition at line 64 of file LocalDriver.php.

◆ $c

if ( $iterator->count()===0) TYPO3\CMS\Core\Resource\Driver\LocalDriver::$c = $numberOfItems > 0 ? $numberOfItems : - 1

Definition at line 373 of file LocalDriver.php.

◆ $items [1/3]

if (!is_dir( $realPath)) TYPO3\CMS\Core\Resource\Driver\LocalDriver::$items = $this->retrieveFileAndFoldersInPath($realPath, $recursive, $includeFiles, $includeDirs, $sort, $sortRev)

Definition at line 366 of file LocalDriver.php.

◆ $items [2/3]

TYPO3\CMS\Core\Resource\Driver\LocalDriver::$items = []

Definition at line 374 of file LocalDriver.php.

◆ $items [3/3]

while ( $iterator->valid() &&( $numberOfItems===0||$c > 0)) return TYPO3\CMS\Core\Resource\Driver\LocalDriver::$items

Definition at line 405 of file LocalDriver.php.

◆ $iterator

TYPO3\CMS\Core\Resource\Driver\LocalDriver::$iterator = new \ArrayIterator($items)

◆ $mappingFolderNameToRole

array TYPO3\CMS\Core\Resource\Driver\LocalDriver::$mappingFolderNameToRole
protected
Initial value:

Definition at line 66 of file LocalDriver.php.

◆ $realPath

TYPO3\CMS\Core\Resource\Driver\LocalDriver::$realPath = $this->getAbsolutePath($folderIdentifier)

Definition at line 358 of file LocalDriver.php.

◆ $supportedHashAlgorithms

array TYPO3\CMS\Core\Resource\Driver\LocalDriver::$supportedHashAlgorithms = array( 'sha1', 'md5' )
protected

A list of all supported hash algorithms, written all lower case.

Definition at line 57 of file LocalDriver.php.

◆ UNSAFE_FILENAME_CHARACTER_EXPRESSION

const TYPO3\CMS\Core\Resource\Driver\LocalDriver::UNSAFE_FILENAME_CHARACTER_EXPRESSION = '\\x00-\\x2C\\/\\x3A-\\x3F\\x5B-\\x60\\x7B-\\xBF'

Definition at line 45 of file LocalDriver.php.

‪TYPO3\CMS\Core\Resource\FolderInterface\ROLE_USERUPLOAD
‪const ROLE_USERUPLOAD
Definition: FolderInterface.php:30
‪TYPO3\CMS\Core\Resource\FolderInterface\ROLE_TEMPORARY
‪const ROLE_TEMPORARY
Definition: FolderInterface.php:29
‪TYPO3\CMS\Core\Resource\FolderInterface\ROLE_RECYCLER
‪const ROLE_RECYCLER
Definition: FolderInterface.php:27