PHP code example of it-empower-solutions / secure-upload

1. Go to this page and download the library: Download it-empower-solutions/secure-upload library. Choose the download type require.

2. Extract the ZIP file and open the index.php.

3. Add this code to the index.php.
    
        
<?php
require_once('vendor/autoload.php');

/* Start to develop here. Best regards https://php-download.com/ */

    

it-empower-solutions / secure-upload example snippets


use ItEmpower\SecureUpload\UploadValidator;

$validator = new UploadValidator([
    'max_size' => 5 * 1024 * 1024,
    'allowed_extensions' => ['jpg', 'jpeg', 'png', 'pdf'],
]);

$result = $validator->validateUploadedFile($_FILES['document'] ?? []);

if (!$result->isValid()) {
    foreach ($result->errors as $error) {
        echo "{$error->code}: {$error->message}\n";
    }
} else {
    echo $result->safeFilename;
    // Déplacez ou stockez vous-même le fichier après validation.
}

$result = $validator->validate(
    path: '/tmp/php-upload',
    originalName: 'rapport.pdf',
    declaredSize: 123456,
);

use ItEmpower\SecureUpload\Exception\UploadValidationException;

try {
    $result = $validator->assert('/tmp/php-upload', 'rapport.pdf');
} catch (UploadValidationException $exception) {
    foreach ($exception->result->errors as $error) {
        // Journaliser ou retourner une réponse adaptée.
    }
}

$filename = $validator->generateSafeFilename('pdf');
// Exemple : 19ee91477fbb6a8b385ce4e23b42f021.pdf

use ItEmpower\SecureUpload\UploadConfig;
use ItEmpower\SecureUpload\UploadValidator;

$validator = new UploadValidator(new UploadConfig(
    maxSize: 10 * 1024 * 1024,
    allowedExtensions: ['jpg', 'jpeg', 'png', 'pdf'],
    mimeTypes: UploadConfig::DEFAULT_MIME_TYPES,
    maxImageWidth: 10_000,
    maxImageHeight: 10_000,
    maxImagePixels: 40_000_000,
    randomNameBytes: 16,
    allowSvg: false,
));

$validator = new UploadValidator([
    'allowed_extensions' => ['svg'],
    'allow_svg' => true,
]);

use Illuminate\Http\Request;
use ItEmpower\SecureUpload\UploadValidator;

public function store(Request $request, UploadValidator $validator)
{
    $file = $request->file('document');

    $result = $validator->assert(
        $file->getPathname(),
        $file->getClientOriginalName(),
        $file->getSize(),
    );

    return ['safe_filename' => $result->safeFilename];
}

use ItEmpower\SecureUpload\Framework\Laravel\Facades\SecureUpload;

$result = SecureUpload::validate($path, $originalName, $size);

// config/bundles.php
return [
    ItEmpower\SecureUpload\Framework\Symfony\ItEmpowerSecureUploadBundle::class => ['all' => true],
];
bash
php artisan vendor:publish --tag=secure-upload-config