finfo_file în PHP

Ghid complet pentru finfo_file și finfo_open în PHP: detectarea sigură a tipului MIME real al fișierelor pe baza semnăturilor binare (Magic Bytes), ignorând extensia.

Sintaxă
finfo_file(finfo $finfo, string $filename, int $flags = FILEINFO_NONE, $context = null): string|false

Ce face finfo_file

Funcția finfo_file analizează conținutul binar brut al unui fișier (cunoscut drept magic bytes) pentru a-i determina tipul MIME real. Spre deosebire de valoarea trimisă de browser în $_FILES['input']['type'] (care poate fi ușor falsificată de un atacator), finfo_file oferă certitudine de securitate la încărcarea fișierelor (upload).

Exemplu practic: Validarea securizată a imaginilor la încărcare
<?php
function valideazaUploadImagine(string $caleFisierTemporar): bool {
    // Deschidem baza de date magică MIME:
    $finfo = finfo_open(FILEINFO_MIME_TYPE);
    $tipMimeReal = finfo_file($finfo, $caleFisierTemporar);
    finfo_close($finfo);

    $tipuriPermise = [
        'image/jpeg' => 'jpg',
        'image/png'  => 'png',
        'image/webp' => 'webp',
        'application/pdf' => 'pdf'
    ];

    if (!array_key_exists($tipMimeReal, $tipuriPermise)) {
        throw new Exception("Tip de fișier nepermis: " . $tipMimeReal);
    }

    echo "Fișier valid! Tip MIME detectat: " . $tipMimeReal . "\n";
    return true;
}
Comunitate & Schimb de cunoștințe

Întrebări & Exemple de Cod: finfo_file

Ai o nelămurire despre utilizarea comenzii finfo_file sau ai descoperit un truc / fragment de cod util? Distribuie-l cu ceilalți programatori!

💬

Fii primul care pune o întrebare sau distribuie un fragment de cod / prompt!

Nu au fost adăugate încă întrebări sau exemple de cod pentru această pagină. Dacă ai întâlnit o problemă sau ai un snippet util, adaugă-l mai jos pentru a-i ajuta pe ceilalți.

Comunitate Adaugă o întrebare sau distribuie un cod

Moderare & Siguranță:

Pentru a menține calitatea și securitatea informațiilor, fiecare întrebare sau fragment de cod/prompt este analizat (manual sau prin moderare asistată de AI) înainte de publicare.