www_archline_hu/deployed/tflearn/libraries/techfry/src/TfFile.php
LÁZÁR Imre AI Agent 722fd90feb feat(deployed): add TF Learn 1.7.5 (no-source, vetted live)
TF Learn (Tech Fry) + techfry library 1.3.4; login-gated, no repo -> deployed files.

Signed-off-by: LÁZÁR Imre <imre@illusion.hu>
Assisted-by: claude-code@claude-opus-4-8
2026-07-16 11:24:46 +02:00

64 lines
1.3 KiB
PHP

<?php
/*
* @package Tech Fry Library
* @license https://www.gnu.org/licenses/gpl-3.0.en.html
*/
namespace TechFry\Library;
defined('_JEXEC') or die;
use Joomla\CMS\Factory;
use Joomla\CMS\Image\Image;
use Joomla\CMS\Filter\OutputFilter;
use Joomla\CMS\Filesystem\File;
use Joomla\CMS\Filesystem\Folder;
class TfFile
{
// Handle uploaded file
public static function handle_file($file, $options = array())
{
// $file array - name, type, tmp_name, error, size
// $options - allow_ext, max_size, save_folder, new_name
// 1. Check for valid file extension
$ext = File::getExt($file['name']);
if (!in_array(strtolower($ext), $options['allow_ext']))
{
return false;
}
// 2. Check for file size
if ($file['size'] > $options['max_size'])
{
return false;
}
// 3. Rename file
if (isset($options['new_name']))
{
$new_name = $options['new_name'] . '.' . $ext;
}
else
{
$name = File::stripExt($file['name']);
$new_name = $name . '_' . mt_rand(100,999) . '.' . $ext;
}
// 4. Upload file
$src = $file['tmp_name'];
$dest = $options['save_folder'] . '/' . $new_name;
if (File::upload($src, $dest))
{
return $new_name;
}
else
{
return false;
}
}
}