Files
LesRecettesDePapis/src/Helpers/UploadFiles.php

60 lines
1.5 KiB
PHP
Raw Normal View History

2026-04-03 12:55:05 +02:00
<?php
namespace App\Helpers;
use App\Http\Router;
use App\Kernel;
class UploadFiles {
const array IMAGE_MIME_TYPES = [ 'image/png', 'image/jpeg' ];
2026-04-03 12:55:05 +02:00
public static function uploadFolderPath(){
return APP_ROOT . 'public/uploads/';
}
public static function uploadFolderUri(){
return Kernel::$configs['general']['website_url'] . 'uploads/';
}
/**
* @param string $fileName
* @param array $allowedMimeTypes Les mimes types autorisés pour ce fichier. Une liste vide n'a pas de restriction de mime type.
2026-04-03 12:55:05 +02:00
*
* @return string|int
*
* 1: Pas de fichier $fileArg
* 2: Erreur dans le fichier
* 3: Déjà existant.
* 4: Erreur dans le déplacement.
* 5: Erreur dans le mimetype.
2026-04-03 12:55:05 +02:00
*/
public static function uploadFile( string $fileArg, array $allowedMimeTypes = [] ): string|int {
2026-04-03 12:55:05 +02:00
if( !isset( $_FILES[ $fileArg ] ) )
return 1;
$file = $_FILES[ $fileArg ];
if( $file['error'] != 0 )
return 2;
$tempFileName = $file['tmp_name'];
$fileName = $file['name'];
if( $allowedMimeTypes !== [] ){
if( !in_array( $file['type'], $allowedMimeTypes ) )
return 5;
}
2026-04-03 12:55:05 +02:00
$full_name = self::uploadFolderPath() . $fileName;
$full_uri = self::uploadFolderUri() . $fileName;
if( file_exists( $full_name ) )
return 3;
if( !move_uploaded_file($tempFileName, $full_name) )
return 4;
return $full_uri;
}
}