public function uploadTo($strTarget)
	{
		if ($strTarget == '' || Validator::isInsecurePath($strTarget))
		{
			throw new \InvalidArgumentException('Invalid target path ' . $strTarget);
		}

		$maxlength_kb = static::getMaxUploadSize();
		$maxlength_kb_readable = $this->getReadableSize($maxlength_kb);
		$arrUploaded = array();
		$arrFiles = $this->getFilesFromGlobal();

		foreach ($arrFiles as $file)
		{
			// Sanitize the filename
			try
			{
				$file['name'] = StringUtil::sanitizeFileName($file['name']);
			}
			catch (\InvalidArgumentException $e)
			{
				Message::addError($GLOBALS['TL_LANG']['ERR']['filename']);
				$this->blnHasError = true;

				continue;
			}

			// Invalid file name
			if (!Validator::isValidFileName($file['name']))
			{
				Message::addError($GLOBALS['TL_LANG']['ERR']['filename']);
				$this->blnHasError = true;
			}

			// File was not uploaded
			elseif (!is_uploaded_file($file['tmp_name']))
			{
				if ($file['error'] == 1 || $file['error'] == 2)
				{
					Message::addError(sprintf($GLOBALS['TL_LANG']['ERR']['filesize'], $maxlength_kb_readable));
					$this->blnHasError = true;
				}
				elseif ($file['error'] == 3)
				{
					Message::addError(sprintf($GLOBALS['TL_LANG']['ERR']['filepartial'], $file['name']));
					$this->blnHasError = true;
				}
				elseif ($file['error'] > 0)
				{
					Message::addError(sprintf($GLOBALS['TL_LANG']['ERR']['fileerror'], $file['error'], $file['name']));
					$this->blnHasError = true;
				}
			}

			// File is too big
			elseif ($file['size'] > $maxlength_kb)
			{
				Message::addError(sprintf($GLOBALS['TL_LANG']['ERR']['filesize'], $maxlength_kb_readable));
				$this->blnHasError = true;
			}

			else
			{
				$strExtension = strtolower(substr($file['name'], strrpos($file['name'], '.') + 1));

				// Image is too big
				if (\in_array($strExtension, array('gif', 'jpg', 'jpeg', 'png')) && System::getContainer()->getParameter('contao.image.reject_large_uploads'))
				{
					$arrImageSize = getimagesize($file['tmp_name']);

					if ($arrImageSize[0] > Config::get('gdMaxImgWidth') || $arrImageSize[1] > Config::get('gdMaxImgHeight'))
					{
						Message::addError(sprintf($GLOBALS['TL_LANG']['ERR']['largeImage'], Config::get('gdMaxImgWidth'), Config::get('gdMaxImgHeight')));
						$this->blnHasError = true;

						continue;
					}
				}

				// File type not allowed
				if (!\in_array($strExtension, StringUtil::trimsplit(',', strtolower(Config::get('uploadTypes')))))
				{
					Message::addError(sprintf($GLOBALS['TL_LANG']['ERR']['filetype'], $strExtension));
					$this->blnHasError = true;
				}

				// Move the file to its destination
				else
				{
					$this->import(Files::class, 'Files');
					$strNewFile = $strTarget . '/' . $file['name'];

					// Set CHMOD and resize if neccessary
					if ($this->Files->move_uploaded_file($file['tmp_name'], $strNewFile))
					{
						$this->Files->chmod($strNewFile, 0666 & ~umask());

						// Notify the user
						Message::addConfirmation(sprintf($GLOBALS['TL_LANG']['MSC']['fileUploaded'], $file['name']));
						$this->log('File "' . $strNewFile . '" has been uploaded', __METHOD__, TL_FILES);

						// Resize the uploaded image if necessary
						$this->resizeUploadedImage($strNewFile);

						$arrUploaded[] = $strNewFile;
					}
				}
			}
		}

		return $arrUploaded;
	}
public function uploadTo($strTarget)
	{
		if ($strTarget == '' || Validator::isInsecurePath($strTarget))
		{
			throw new \InvalidArgumentException('Invalid target path ' . $strTarget);
		}

		$maxlength_kb = static::getMaxUploadSize();
		$maxlength_kb_readable = $this->getReadableSize($maxlength_kb);
		$arrUploaded = array();
		$arrFiles = $this->getFilesFromGlobal();

		foreach ($arrFiles as $file)
		{
			
			try
			{
				$file['name'] = StringUtil::sanitizeFileName($file['name']);
			}
			catch (\InvalidArgumentException $e)
			{
				Message::addError($GLOBALS['TL_LANG']['ERR']['filename']);
				$this->blnHasError = true;

				continue;
			}

			
			if (!Validator::isValidFileName($file['name']))
			{
				Message::addError($GLOBALS['TL_LANG']['ERR']['filename']);
				$this->blnHasError = true;
			}

			
			elseif (!is_uploaded_file($file['tmp_name']))
			{
				if ($file['error'] == 1 || $file['error'] == 2)
				{
					Message::addError(sprintf($GLOBALS['TL_LANG']['ERR']['filesize'], $maxlength_kb_readable));
					$this->blnHasError = true;
				}
				elseif ($file['error'] == 3)
				{
					Message::addError(sprintf($GLOBALS['TL_LANG']['ERR']['filepartial'], $file['name']));
					$this->blnHasError = true;
				}
				elseif ($file['error'] > 0)
				{
					Message::addError(sprintf($GLOBALS['TL_LANG']['ERR']['fileerror'], $file['error'], $file['name']));
					$this->blnHasError = true;
				}
			}

			
			elseif ($file['size'] > $maxlength_kb)
			{
				Message::addError(sprintf($GLOBALS['TL_LANG']['ERR']['filesize'], $maxlength_kb_readable));
				$this->blnHasError = true;
			}

			else
			{
				$strExtension = strtolower(substr($file['name'], strrpos($file['name'], '.') + 1));

				
				if (\in_array($strExtension, array('gif', 'jpg', 'jpeg', 'png')) && System::getContainer()->getParameter('contao.image.reject_large_uploads'))
				{
					$arrImageSize = getimagesize($file['tmp_name']);

					if ($arrImageSize[0] > Config::get('gdMaxImgWidth') || $arrImageSize[1] > Config::get('gdMaxImgHeight'))
					{
						Message::addError(sprintf($GLOBALS['TL_LANG']['ERR']['largeImage'], Config::get('gdMaxImgWidth'), Config::get('gdMaxImgHeight')));
						$this->blnHasError = true;

						continue;
					}
				}

				
				if (!\in_array($strExtension, StringUtil::trimsplit(',', strtolower(Config::get('uploadTypes')))))
				{
					Message::addError(sprintf($GLOBALS['TL_LANG']['ERR']['filetype'], $strExtension));
					$this->blnHasError = true;
				}

				
				else
				{
					$this->import(Files::class, 'Files');
					$strNewFile = $strTarget . '/' . $file['name'];

					
					if ($this->Files->move_uploaded_file($file['tmp_name'], $strNewFile))
					{
						$this->Files->chmod($strNewFile, 0666 & ~umask());

						
						Message::addConfirmation(sprintf($GLOBALS['TL_LANG']['MSC']['fileUploaded'], $file['name']));
						$this->log('File "' . $strNewFile . '" has been uploaded', __METHOD__, TL_FILES);

						
						$this->resizeUploadedImage($strNewFile);

						$arrUploaded[] = $strNewFile;
					}
				}
			}
		}

		return $arrUploaded;
	}
public function uploadTo ( $ strTarget ) { if ( $ strTarget == '' || Validator :: isInsecurePath ( $ strTarget ) ) { throw new \ InvalidArgumentException ( 'Invalid target path ' . $ strTarget ) ; } $ maxlength_kb = static :: getMaxUploadSize ( ) ; $ maxlength_kb_readable = $ this -> getReadableSize ( $ maxlength_kb ) ; $ arrUploaded = array ( ) ; $ arrFiles = $ this -> getFilesFromGlobal ( ) ; foreach ( $ arrFiles as $ file ) { // Sanitize the filename try { $ file [ 'name' ] = StringUtil :: sanitizeFileName ( $ file [ 'name' ] ) ; } catch ( \ InvalidArgumentException $ e ) { Message :: addError ( $ GLOBALS [ 'TL_LANG' ] [ 'ERR' ] [ 'filename' ] ) ; $ this -> blnHasError = true ; continue ; } // Invalid file name if ( ! Validator :: isValidFileName ( $ file [ 'name' ] ) ) { Message :: addError ( $ GLOBALS [ 'TL_LANG' ] [ 'ERR' ] [ 'filename' ] ) ; $ this -> blnHasError = true ; } // File was not uploaded elseif ( ! is_uploaded_file ( $ file [ 'tmp_name' ] ) ) { if ( $ file [ 'error' ] == 1 || $ file [ 'error' ] == 2 ) { Message :: addError ( sprintf ( $ GLOBALS [ 'TL_LANG' ] [ 'ERR' ] [ 'filesize' ] , $ maxlength_kb_readable ) ) ; $ this -> blnHasError = true ; } elseif ( $ file [ 'error' ] == 3 ) { Message :: addError ( sprintf ( $ GLOBALS [ 'TL_LANG' ] [ 'ERR' ] [ 'filepartial' ] , $ file [ 'name' ] ) ) ; $ this -> blnHasError = true ; } elseif ( $ file [ 'error' ] > 0 ) { Message :: addError ( sprintf ( $ GLOBALS [ 'TL_LANG' ] [ 'ERR' ] [ 'fileerror' ] , $ file [ 'error' ] , $ file [ 'name' ] ) ) ; $ this -> blnHasError = true ; } } // File is too big elseif ( $ file [ 'size' ] > $ maxlength_kb ) { Message :: addError ( sprintf ( $ GLOBALS [ 'TL_LANG' ] [ 'ERR' ] [ 'filesize' ] , $ maxlength_kb_readable ) ) ; $ this -> blnHasError = true ; } else { $ strExtension = strtolower ( substr ( $ file [ 'name' ] , strrpos ( $ file [ 'name' ] , '.' ) + 1 ) ) ; // Image is too big if ( \ in_array ( $ strExtension , array ( 'gif' , 'jpg' , 'jpeg' , 'png' ) ) && System :: getContainer ( ) -> getParameter ( 'contao.image.reject_large_uploads' ) ) { $ arrImageSize = getimagesize ( $ file [ 'tmp_name' ] ) ; if ( $ arrImageSize [ 0 ] > Config :: get ( 'gdMaxImgWidth' ) || $ arrImageSize [ 1 ] > Config :: get ( 'gdMaxImgHeight' ) ) { Message :: addError ( sprintf ( $ GLOBALS [ 'TL_LANG' ] [ 'ERR' ] [ 'largeImage' ] , Config :: get ( 'gdMaxImgWidth' ) , Config :: get ( 'gdMaxImgHeight' ) ) ) ; $ this -> blnHasError = true ; continue ; } } // File type not allowed if ( ! \ in_array ( $ strExtension , StringUtil :: trimsplit ( ',' , strtolower ( Config :: get ( 'uploadTypes' ) ) ) ) ) { Message :: addError ( sprintf ( $ GLOBALS [ 'TL_LANG' ] [ 'ERR' ] [ 'filetype' ] , $ strExtension ) ) ; $ this -> blnHasError = true ; } // Move the file to its destination else { $ this -> import ( Files :: class , 'Files' ) ; $ strNewFile = $ strTarget . '/' . $ file [ 'name' ] ; // Set CHMOD and resize if neccessary if ( $ this -> Files -> move_uploaded_file ( $ file [ 'tmp_name' ] , $ strNewFile ) ) { $ this -> Files -> chmod ( $ strNewFile , 0666 & ~ umask ( ) ) ; // Notify the user Message :: addConfirmation ( sprintf ( $ GLOBALS [ 'TL_LANG' ] [ 'MSC' ] [ 'fileUploaded' ] , $ file [ 'name' ] ) ) ; $ this -> log ( 'File "' . $ strNewFile . '" has been uploaded' , __METHOD__ , TL_FILES ) ; // Resize the uploaded image if necessary $ this -> resizeUploadedImage ( $ strNewFile ) ; $ arrUploaded [ ] = $ strNewFile ; } } } } return $ arrUploaded ; }
Check the uploaded files and move them to the target directory

@param string $strTarget

@return array

@throws \Exception
Check the uploaded files and move them to the target directory