---
title: "Feature: #68895 - Introduced hook in BackendUserAuthentication::getDefaultUploadFolder"
manual: "TYPO3 Core Changelog"
version: "main"
permalink: "https://docs.typo3.org/permalink/changelog:feature-68895"
source: "Changelog/7.6/Feature-68895-IntroducedHookInBackendUserAuthenticationgetDefaultUploadFolder.rst"
typo3-version: "7.6"
typo3-major: 7
type: "feature"
issue: 68895
forge: "https://forge.typo3.org/issues/68895"
tags: ["PHP-API", "Backend"]
rendered: "2026-09-24T21:45:06+00:00"
---

# Feature: #68895 - Introduced hook in BackendUserAuthentication::getDefaultUploadFolder {#feature-68895}

See [forge#68895](https://forge.typo3.org/issues/68895)

## Description {#description}

It is now possible to change the upload folder returned by `BackendUserAuthentication::getDefaultUploadFolder()` by
registering a hook. This makes it possible to set a different upload folder for fields with direct upload enabled in the
backend.

### Register own getDefaultUploadFolder hook {#register-own-getdefaultuploadfolder-hook}

To use your own hook to manipulate the upload folder you need to register the function in `ext_localconf.php` of
your extension.

```php
$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['t3lib/class.t3lib_userauthgroup.php']['getDefaultUploadFolder'][] =
	\Vendor\MyExtension\Hooks\DefaultUploadFolder::class . '->getDefaultUploadFolder';
```

### Example getDefaultUploadFolder hook {#example-getdefaultuploadfolder-hook}

```php
<?php
namespace Vendor\MyExtension\Hooks;

use TYPO3\CMS\Core\Authentication\BackendUserAuthentication;
use TYPO3\CMS\Core\Resource\Folder;

/**
 * Class DefaultUploadFolder
 */
class DefaultUploadFolder {

	/**
	 * Get default upload folder
	 *
	 * If there is a folder present with the same name as the last part of the table name use that folder.
	 *
	 * @param array $params
	 * @param BackendUserAuthentication $backendUserAuthentication
	 * @return Folder
	 */
	public function getDefaultUploadFolder($params, BackendUserAuthentication $backendUserAuthentication) {

		/** @var Folder $uploadFolder */
		$uploadFolder = $params['uploadFolder'];
		$pid = $params['pid'];
		$table = $params['table'];
		$field = $params['field'];

		$matches = [];
		if (!empty($uploadFolder) && preg_match('/_([a-z]+)$/', $table, $matches)) {
			$folderName = $matches[1];
			if ($uploadFolder->hasFolder($folderName)) {
				$uploadFolder = $uploadFolder->getSubfolder($folderName);
			}
		}
		return $uploadFolder;
	}
}
```
