Ciao a tutti,
premetto che non sono molto esperta di php, e si vede![]()
arrivo subito al dunque...
Il seguente codice permette l'upload di una immagine dal browser ad una determinata directory del sito. Lo script inoltre permette di inserire l'url dell'immagine all'interno di un database.
<?
$img_scheda = $_GET['id'];
//recupero l'url id della tabella scheda
$directory = "images/";
// inseriamo le dimensioni massime consentite per l'upload
// massimo peso
$max_file_size = 20240;
// massima larghezza
$max_width = 300;
// altezza massima
$max_height = 100;
//La parte seguente di codice verifica se esiste il valore "upload" in POST
//In caso contrario viene visualizzato il form per l'upload dell'immagine
if(!isset($_POST['upload'])){
echo "<form action='db_insImmagini.php' method='post' enctype='multipart/form-data'>
Nome Immagine:
<input type='text' name='nomeimmagine' />
Inserisci file:
<input type='file' name='immagine' />
<input type='submit' name='upload' value='Carica Immagine' /></form>";
}
// enctype='multipart/form-data' all'interno del tag form è fondamentale per l'upload dell'immagine
elseif(isset($_POST['upload'])){
// prendo il timestamp per dare un nome casuale al file dell'immagine
$timestamp = time();
$nomeimmagine = mysql_real_escape_string($_POST['nomeimmagine']);
$dimensioni = getimagesize($_FILES['immagine']['tmp_name']);
$larghezza = $dimensioni[0];
$altezza = $dimensioni[1];
//costruisco l'array degli errori
$errors = array();
if(empty($nomeimmagine) || empty($dimensioni)) {
$errors[] = 'Non hai inserito un nome all\'immagine.';
}
if(empty($_FILES['immagine']['name'])) {
$errors[] = 'Non hai inserito l\'immagine per il caricamento';
}
//verifico se il file è stato caricato correttamente
if(!is_uploaded_file($_FILES['immagine']['tmp_name'])) {
$errors[] = 'Si sono verificati errori durante l\'upload.';
}
if($_FILES['immagine']['size'] > $max_file_size) {
$errors[] = 'Immagine troppo pesante la dimensiome massima consentita è: ' . $max_file_size . ' bytes.';
}
// Verifico se l'immagine è di tipo jpeg o gif
$type=$_FILES['immagine']['type'];
if($type != "image/gif" && $type != "image/pjpeg" && $type != "image/jpeg") {
$errors[] = 'L\'immagine deve essere del formato JPEG o GIF.';
}
// controllo le dimensioni dell'immagine
if($altezza > $max_width) {
$errors[] = 'L\'altezza della tua immagine è troppo grande';
}
if($larghezza > $max_width) {
$errors[] = 'La tua immagine è troppo larga.';
}
// Se ci sono stampo gli errori
if(count($errors) > 0) {
echo 'ERRORS:
indietro
';
foreach($errors as $err) {
echo $err . '
';
}
}
//altrimenti effettuo l'upload
else {
$urlimmagine = $directory. time() . '_' . $_FILES['immagine']['name'];
//inserisco l'immagine nella directory e se tutto va bene nel database
if(copy($_FILES['immagine']['tmp_name'], $urlimmagine)) {
mysql_query("INSERT INTO immagini (nomeimmagine, urlimmagine, img_scheda ) VALUES ('$nomeimmagine', '$urlimmagine', '$img_scheda')");
echo 'L\'immagine è stata caricata con successo. Clicca qui per vedere l\'immagine.'; }
else
echo 'Si sono verificati errori durante il caricamento dell\'immagine.';
}
}
?>
Funziona benissimo tranne per un piccolo problema: Nel Database non mi carica nessun valore nel campo img_scheda , nonostante gli ho assegnato la variabile $img_scheda = $_GET['id'];
Potete aiutarmi??!! Dove sbaglio??!! Funziona tutto tranne il caricamento del dato img_scheda su DB... Grazie in anticipo