salve, siccome quest'anno dovrò sostenere gli esami di stato ho deciso di portare una specie di gestionale, scritto con HTML, CSS (con framework bootstrap), PHP e MySQL per il database. Siccome inserire direttamente le immagini nei database è un operazione limitata e macchinosa, ho pensato di uplodare le immagini dal computer in una cartella dello spazio web dove sarà ospitato il mio sito e poi inserire in una tabella del database solo il percorso a quest'immagine a cui posso poi risalire tramite una query.
Al momento quindi quello che mi interessa fare è uplodare la foto tramite un form. Siccome in PHP fino ad ora non ho mai utilizzato le funzioni di upload, mi sono messo a cercare un po su internet e sono arrivato a scrivere i seguenti codici:
form.php
codice:
<!DOCTYPE html><html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<form enctype="multipart/form-data" action="upload.php" method="POST">
<input type="hidden" name="MAX_FILE_SIZE" value="30000">
Invia questo file: <input name="image" type="file"><br>
<input type="submit" value="Invia File">
</form>
</body>
</html>
questo è un semplice form che passa i parametri allo script upload.php
codice:
<?php$messaggio="";
if(is_uploaded_file($_FILES['image']['tmp_name'])) {
//controllo che il file non superi i 100 KB (1 kilobyte = 1024 byte)
if($_FILES['image']['size']>102400)
$messaggio.="Il file ha dimensioni che superano i 100 KB<br />";
//recupero le informazioni sull'immagine
list($width, $height, $type, $attr)=getimagesize($_FILES['image']['tmp_name']);
//controllo che le dimensioni (in pixel) non superino 800x600
if(($width>800) or ($height>600))
$messaggio.="Il file non deve superare le dimensioni di 800x600<br />";
//controllo che il file sia in uno dei formati GIF, JPG o PNG
if(($type!=1) and ($type!=2) and ($type!=3))
$messaggio.="Il file caricato deve essere un'immagine<br />";
//controllo che non esiste già un file con lo stesso nome
if(file_exists('file/'.$_FILES['image']['name']))
$messaggio.="Esiste già un file con lo stesso nome. Rinominare l'immagine prima di caricarla<br />";
//salvo il file nella cartella di destinazione
if(!move_uploaded_file($_FILES['image']['tmp_name'], 'file/'.$_FILES['image']['name']))
$messaggio.="Errore imprevisto nel caricamento del file. Controllare i permessi della cartella di destinazione";
}
if($messaggio!="")
echo $messaggio;
?>
come potete vedere le immagini dovrebbero essere copiate nella cartella file
che si trova nella stessa cartella dove stanno i due script. l'upload non avviene e non mi esce nessun errore. Come mai?
attualmente sto lavorando tramite un web server locale. Ringrazio in anticipo chi saprà aiutarmi