Ciao a tutti. Mi sto cimentando nel costruire una funzione per fare l'upload di un immagine, e funziona benissimo per come volevo che funzionasse.
L'unico problema è che una volta fatto l'upload non riesco a stampare, fuori dalla funzione, il nome dell'immagine uploadata.
Per eseguire la funzione, mi servono l'immagine postata (il nome del campo invio dati), la cartella di destinazione, un indice per indicare quale immagine è, un eventuale vecchia immagine già presente nel database (cosi posso sfruttarla sia quando inserisco un nuovo articolo sia quando lo modifico).
Vi posto il codice cosi è più chiaro:
Quello che voglio fare è semplicemente questo:
echo $foto[$i];
Provo a fare echo $foto[0], considerato che non ci sono altri file nell'array e quindi il primo indice è zero, ma niente!
Ma non me lo stampa! Non c'è potenza! L'immagine me la mette correttamente nella cartella, con il nome corretto e non mi da il minimo errore, solo che non riesco a stampare il nome della foto. Questo mi serve per inserirlo nel database in maniera che poi va a cercare l'immagine da sola.
Mi potete aiutare? C'è sicuramente qualcosa che mi sfugge....
L'unico problema è che una volta fatto l'upload non riesco a stampare, fuori dalla funzione, il nome dell'immagine uploadata.
Per eseguire la funzione, mi servono l'immagine postata (il nome del campo invio dati), la cartella di destinazione, un indice per indicare quale immagine è, un eventuale vecchia immagine già presente nel database (cosi posso sfruttarla sia quando inserisco un nuovo articolo sia quando lo modifico).
Vi posto il codice cosi è più chiaro:
PHP:
function img($img_postata,$cartella,$i,$img_vecchia){
// FOTO1 //////////////////////////////////////////////////////
if (is_uploaded_file($_FILES[$img_postata]['tmp_name'])) {
//controlliamo che il file rispetti le dimensioni impostate
if ($_FILES[$img_postata]["size"] < 2042000){
//controlliamo se ci sono stati errori durante l'upload
if ($_FILES[$img_postata]["error"] > 0){
echo "Codice Errore: " . $_FILES[$img_postata]["error"];
}else{
//stampo alcune informazioni sul file
//tipo di file
$tipo = $_FILES[$img_postata]["type"];
//controllo estensione consentita
if(($tipo !== 'image/jpeg') && ($tipo !== 'image/jpg') && ($tipo !== 'image/gif') && ($tipo !== 'image/bmp') && ($tipo !== 'image/png')){
die("Estensione del file non consentita.<br /><br />Utilizzare un\'immagine con estensione <b>jpg</b>, <b>jpeg</b>, <b>gif</b>, <b>png</b>, <b>bmp</b>.");
}
// Tolgo gli spazi, i trattini e i trattini bassi
$_FILES[$img_postata]["name"] = str_replace(" ", "", $_FILES[$img_postata]["name"]);
$_FILES[$img_postata]["name"] = str_replace("-", "", $_FILES[$img_postata]["name"]);
$_FILES[$img_postata]["name"] = str_replace("_", "", $_FILES[$img_postata]["name"]);
//sposto il file caricato dalla cartella temporanea alla destinazione finale
$random1 = rand(1,10000);
move_uploaded_file($_FILES[$img_postata]["tmp_name"], $cartella . $random1 . $_FILES[$img_postata]["name"]);
}
}else{
die ("Dimensione foto maggiore di quella consentita.");
}
$foto[$i] = $random1 . strtolower($_FILES[$img_postata]["name"]);
// Se è stata postata l'immagine vecchia, controllo se è uguale o diversa alla nuova
if($img_vecchia != 'n'){
// Se la nuova è diversa dalla vecchia Cancellazione foto old
if($img_vecchia !== $foto[$i] && file_exists($cartella . $img_vecchia)){
unlink($cartella . $img_vecchia);
}else{ // oppure resta uguale alla vecchia
$foto[$i] = $img_vecchia;
}
}// fine if isset img vecchia
echo '<h3>Upload effettuato. Nome immagine: ' . $foto[$i] . '</h3>';
return $foto[$i];
}// fine if uploaded file
///////////////////////////////////////////////////////////////////////////////////////////////////////////
} // fine function img
Quello che voglio fare è semplicemente questo:
echo $foto[$i];
Provo a fare echo $foto[0], considerato che non ci sono altri file nell'array e quindi il primo indice è zero, ma niente!
Ma non me lo stampa! Non c'è potenza! L'immagine me la mette correttamente nella cartella, con il nome corretto e non mi da il minimo errore, solo che non riesco a stampare il nome della foto. Questo mi serve per inserirlo nel database in maniera che poi va a cercare l'immagine da sola.
Mi potete aiutare? C'è sicuramente qualcosa che mi sfugge....