PHP
HTML
CSS
JavaScript
Generatori
Varie & Old

PHP: Upload file

Upload di file in PHP

PHP permette di gestire il caricamento di file da un form HTML. Per motivi di sicurezza e funzionamento corretto è necessario configurare e validare i file caricati.

Introduzione all’upload dei file

Per consentire il caricamento dei file è necessario un form HTML con l’attributo enctype="multipart/form-data". In PHP i file inviati vengono gestiti tramite la superglobale $_FILES, che contiene informazioni come nome, tipo, dimensione e percorso temporaneo.


Esempio: form e script di upload

Nell’esempio seguente viene creato un form e uno script PHP che sposta il file caricato in una cartella.

Codice Esempio: caricamento file

CODE: HTML/PHPpreleva codice
  1. <!-- form.html -->
  2. <form action="upload.php" method="post" enctype="multipart/form-data">
  3.   Seleziona file: <input type="file" name="fileDaCaricare">
  4.   <input type="submit" value="Carica">
  5. </form>
  6.  
  7. <!-- upload.php -->
  8. <?php
  9. $target_dir = "uploads/";
  10. $target_file = $target_dir . basename($_FILES["fileDaCaricare"]["name"]);
  11.  
  12. if (move_uploaded_file($_FILES["fileDaCaricare"]["tmp_name"], $target_file)) {
  13.   echo "Il file " . basename($_FILES["fileDaCaricare"]["name"]) . " è stato caricato con successo.";
  14. } else {
  15.   echo "Errore durante il caricamento del file.";
  16. }
  17. ?>
  18. <!-- Output nel browser (se file ok):
  19. Il file esempio.png è stato caricato con successo.
  20. -->

⚠️ Nota Bene:
Gli esempi sono a puro scopo didattico. Si sconsiglia di utilizzarli tali e quali in ambienti di produzione.


Controlli di sicurezza

È importante applicare controlli prima di accettare un file:

  • Verificare la dimensione massima
  • Consentire solo alcuni tipi di file (es. immagini)
  • Sanificare il nome del file

Codice Esempio: controlli aggiuntivi

CODE: PHPpreleva codice
  1. <?php
  2. $target_dir = "uploads/";
  3. $target_file = $target_dir . basename($_FILES["fileDaCaricare"]["name"]);
  4. $tipo_file = strtolower(pathinfo($target_file, PATHINFO_EXTENSION));
  5.  
  6. // Controllo tipo file (solo immagini)
  7. if ($tipo_file != "jpg" && $tipo_file != "png" && $tipo_file != "gif") {
  8.   die("Sono consentiti solo file JPG, PNG e GIF.");
  9. }
  10.  
  11. // Controllo dimensione (max 2MB)
  12. if ($_FILES["fileDaCaricare"]["size"] > 2000000) {
  13.   die("Il file è troppo grande (max 2MB).");
  14. }
  15.  
  16. // Upload se i controlli sono passati
  17. if (move_uploaded_file($_FILES["fileDaCaricare"]["tmp_name"], $target_file)) {
  18.   echo "Upload riuscito: " . htmlspecialchars(basename($_FILES["fileDaCaricare"]["name"]));
  19. } else {
  20.   echo "Errore nell’upload.";
  21. }
  22. ?>

⚠️ Nota Bene:
Gli esempi sono a puro scopo didattico. Si sconsiglia di utilizzarli tali e quali in ambienti di produzione.


Tabella riassuntiva $_FILES

Indice Descrizione Esempio
$_FILES['nomeCampo']['name']Nome originale del filedocumento.pdf
$_FILES['nomeCampo']['type']Tipo MIME dichiaratoimage/png
$_FILES['nomeCampo']['size']Dimensione in byte24567
$_FILES['nomeCampo']['tmp_name']Percorso temporaneo/tmp/phpYzdqkD
$_FILES['nomeCampo']['error']Codice di errore0

Considerazioni

Il caricamento di file è utile ma potenzialmente pericoloso. È fondamentale validare tipo, dimensione e nome dei file prima di salvarli sul server.


I Cookie su questo sito:

Il nostro sito utilizza cookie e altre tecnologie in modo tale che sia noi, sia i nostri partner, possiamo ricordarci di te e capire come tu e gli altri visitatori utilizzate il nostro sito. Qui puoi trovare ulteriori informazioni sui cookie e le altre tecnologie. Chiudendo questo banner o continuando la navigazione acconsenti all'uso dei cookie. Acconsento Info Cookies