joomla / filesystem
Joomla Filesystem Package
Fund package maintenance!
joomla
community.joomla.org/sponsorship-campaigns.html
Installs: 259 571
Dependents: 13
Suggesters: 1
Security: 1
Stars: 10
Watchers: 15
Forks: 17
Open Issues: 9
Type:joomla-package
Requires
- php: ^8.1.0
Requires (Dev)
- joomla/test: ^3.0
- mikey179/vfsstream: ^1.6.11
- phan/phan: ^5.4.2
- phpstan/phpstan: ^1.10.7
- phpunit/phpunit: ^9.5.28
- squizlabs/php_codesniffer: ^3.7.2
This package is auto-updated.
Last update: 2024-11-08 21:18:12 UTC
README
File upload example
use Joomla\Filesystem\File; $file = $this->input->files->get('file'); $config = array( 'extensions' => 'jpg,jpeg,gif,png,pdf,doc,docx', 'max_size' => 30000000, // 30 MB 'folder' => 'documents' ); // Check there is some file to upload if (empty($file['name'])) { return; } // Check max size if ($file['size'] > $config['max_size']) { throw new \RuntimeException('Uploaded file size (' . round($file['size'] / 1000) . ' kB) is greater than allowed size (' . round($config['max_size'] / 1000) . ' kB).'); } $config['extensions'] = explode(',', $config['extensions']); // Get File extension $ext = strtolower(substr($file['name'], (strrpos($file['name'], '.') + 1))); // Sanitize allowed extensions foreach ($config['extensions'] as &$extension) { $extension = str_replace('.', '', trim(strtolower($extension))); } // Check allowed extensions if (!in_array($ext, $config['extensions'])) { throw new \RuntimeException('Uploaded file extension (' . $ext . ') is not within allowed extensions (' . implode(',', $config['extensions']) . ')'); } $path = JPATH_ROOT . '/' . $config['folder'] . '/' . File::makeSafe($file['name']); File::upload($file['tmp_name'], $path);
Changes From 1.x
Patcher
In 1.x, the second parameter of the add
and addFile
methods was optional. In 2.0, this parameter is required. This parameter requires the
root path of the source which you are patching.
Installation via Composer
Add "joomla/filesystem": "~3.0"
to the require block in your composer.json and then run composer install
.
{ "require": { "joomla/filesystem": "~3.0" } }
Alternatively, you can simply run the following from the command line:
composer require joomla/filesystem "~3.0"
If you want to include the test sources, use
composer require --prefer-source joomla/filesystem "~3.0"