📢 Nuovo Corso Laravel API disponibile!

Upload File in PHP

Il caricamento di file è un’operazione comune nelle applicazioni web che consentono agli utenti di inviare immagini, documenti o altri tipi di file al server. In PHP, è possibile gestire il caricamento dei file in modo semplice e sicuro. In questo articolo, ti guideremo attraverso il processo di caricamento dei file in PHP.

Preparare il Form HTML

Per consentire agli utenti di caricare file, è necessario creare un modulo HTML con un campo di input di tipo “file”. Ecco un esempio di form HTML:

<form action="upload.php" method="POST" enctype="multipart/form-data">
<input type="file" name="fileToUpload" id="fileToUpload" />
<input type="submit" value="Carica File" name="submit" />
</form>
  • L’attributo enctype="multipart/form-data" è essenziale per consentire il caricamento dei file.

Creare lo Script di Caricamento (upload.php)

Ora dovrai creare uno script PHP per gestire il caricamento del file. Chiameremo questo script “upload.php”. Ecco un esempio di script:

<?php
$targetDirectory = "uploads/";
$targetFile = $targetDirectory . basename($_FILES["fileToUpload"]["name"]);
$uploadOk = 1;
$imageFileType = strtolower(pathinfo($targetFile, PATHINFO_EXTENSION));
// Verifica se il file è una vera immagine o un file fittizio
if(isset($_POST["submit"])) {
$check = getimagesize($_FILES["fileToUpload"]["tmp_name"]);
if($check !== false) {
echo "Il file è un'immagine - " . $check["mime"] . ".";
$uploadOk = 1;
} else {
echo "Il file non è un'immagine.";
$uploadOk = 0;
}
}
// Controlla se il file esiste giĂ 
if (file_exists($targetFile)) {
echo "Spiacenti, il file esiste giĂ .";
$uploadOk = 0;
}
// Verifica la dimensione del file
if ($_FILES["fileToUpload"]["size"] > 500000) {
echo "Spiacenti, il file è troppo grande.";
$uploadOk = 0;
}
// Accetta solo alcuni formati di file
$allowedFormats = array("jpg", "jpeg", "png", "gif");
if (!in_array($imageFileType, $allowedFormats)) {
echo "Spiacenti, sono ammessi solo file JPG, JPEG, PNG e GIF.";
$uploadOk = 0;
}
// Verifica se $uploadOk è impostato su 0 a causa di un errore
if ($uploadOk == 0) {
echo "Spiacenti, il file non è stato caricato.";
// Se tutto è ok, prova a caricare il file
} else {
if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $targetFile)) {
echo "Il file ". basename( $_FILES["fileToUpload"]["name"]). " è stato caricato con successo.";
} else {
echo "Si è verificato un errore durante il caricamento del file.";
}
}
?>

Questo script esegue le seguenti operazioni:

  • Verifica se il file è un’immagine valida.
  • Controlla se il file esiste giĂ  nella cartella “uploads”.
  • Verifica la dimensione del file (500 KB nel nostro esempio).
  • Accetta solo file con estensioni JPG, JPEG, PNG e GIF.
  • Carica il file nella cartella “uploads” se tutte le verifiche vengono superate.

Creare una Cartella per i File Caricati

Prima di eseguire il caricamento dei file, è necessario creare una cartella in cui i file verranno archiviati. Nel nostro esempio, abbiamo utilizzato la cartella “uploads”. Assicurati che questa cartella esista e abbia le autorizzazioni di scrittura appropriate.

Testare il Caricamento dei File

Ora sei pronto per testare il caricamento dei file. Carica un file utilizzando il modulo HTML che hai creato e verifica che il file venga caricato correttamente nella cartella “uploads”.

Conclusioni

Hai ora una base solida per gestire il caricamento dei file in PHP. Puoi personalizzare ulteriormente lo script di caricamento per adattarlo alle tue esigenze specifiche, ad esempio, impostando limiti di dimensione diversi o consentendo formati di file aggiuntivi. Ricorda sempre di verificare e validare i file caricati per garantire un utilizzo sicuro e affidabile della tua applicazione web.