📤 Upload di File in PHP

L’upload di file permette agli utenti di caricare file dal proprio computer al server tramite una pagina web.

Questa funzionalità è molto comune nelle applicazioni web, ad esempio per:

PHP gestisce l’upload dei file tramite la variabile superglobale $_FILES.


🧾 Il Form HTML per l’Upload

Per permettere il caricamento di file bisogna creare un form HTML con alcune impostazioni specifiche.

📌 Esempio

<form action="upload.php" method="post" enctype="multipart/form-data">

Seleziona un file:
<input type="file" name="file">

<br><br>

<input type="submit" value="Carica file">

</form>

🔎 Spiegazione

Il form contiene alcuni elementi importanti:

⚠ Senza enctype="multipart/form-data" l’upload non funzionerà.


📦 La Variabile $_FILES

Quando un file viene inviato al server, PHP lo rende disponibile tramite $_FILES.

Questa variabile contiene diverse informazioni sul file caricato.

Struttura principale

$_FILES["file"]["name"]
$_FILES["file"]["type"]
$_FILES["file"]["size"]
$_FILES["file"]["tmp_name"]
$_FILES["file"]["error"]

Significato

Proprietà Descrizione
name nome originale del file
type tipo del file
size dimensione in byte
tmp_name posizione temporanea sul server
error eventuali errori

📥 Ricevere il File in PHP

Quando l’utente invia il form, il file viene salvato temporaneamente sul server.

Esempio

<?php

$nomeFile = $_FILES["file"]["name"];
echo "Nome file: " . $nomeFile;

?>

📂 Salvare il File sul Server

Per salvare il file definitivamente si utilizza la funzione:

move_uploaded_file()

Esempio completo

<?php

$nomeFile = $_FILES["file"]["name"];
$tmp = $_FILES["file"]["tmp_name"];

move_uploaded_file($tmp, "uploads/" . $nomeFile);

echo "File caricato con successo ✅";

?>

In questo esempio:

⚠ La cartella uploads deve esistere sul server.


⚠ Controllare la Dimensione del File

È buona pratica controllare la dimensione del file prima di salvarlo.

Esempio

<?php

if($_FILES["file"]["size"] > 2000000){

    echo "Il file è troppo grande ❌";

}else{

    echo "Dimensione accettata ✅";

}

?>

In questo esempio il limite è 2 MB.


🛡️ Controllare il Tipo di File

Per motivi di sicurezza è importante verificare il tipo di file.

Esempio

<?php

$tipo = $_FILES["file"]["type"];

if($tipo == "image/jpeg" || $tipo == "image/png"){

    echo "Formato valido ✅";

}else{

    echo "Formato non consentito ❌";

}

?>

Questo permette solo immagini JPG e PNG.


🧪 Esempio Completo

<?php

$nomeFile = $_FILES["file"]["name"];
$tmp = $_FILES["file"]["tmp_name"];
$dimensione = $_FILES["file"]["size"];

if($dimensione < 2000000){

    move_uploaded_file($tmp, "uploads/" . $nomeFile);

    echo "Upload completato 📤";

}else{

    echo "File troppo grande ❌";

}

?>

🧠 Consigli di Sicurezza

Quando si gestiscono upload di file è importante seguire alcune regole:

Questo aiuta a prevenire problemi di sicurezza sul server.


🎯 Riassunto

L’upload di file in PHP richiede alcuni passaggi fondamentali:

  1. creare un form HTML con enctype multipart/form-data

  2. usare la variabile $_FILES

  3. salvare il file con move_uploaded_file()

  4. controllare dimensione e tipo di file


✅ Con questo articolo abbiamo aggiunto una delle funzionalità più importanti per le applicazioni web.