Salve a tutti,
ho fatto sto script che dovrebbe uploddare delle foto controllandone, prima, che le caratteristiche della foto in questione corrispondano a quelle consentite. Infine, semre prima di uploddare rinomina la foto con un uniqid().
Codice PHP:
<? if (isset($_POST['invia']))
{
//--------------------------------------CONFIGURA FOTO UPLOAD------------------------------------
$dimensione_massima=51200; //dimensione massima consentita per file in byte -> 1024 byte = 1 Kb
$dimensione_massima_Kb=$dimensione_massima/1024;
$cartella_upload="foto_utenti/"; //cartella in cui eseguire l'upload (controllare permessi scrittura)
// percorso cartella relativo $cartella_upload="../public/";
$filtrare=1; //filtrare x estensioni ammesse? 1=si 0=no
$array_estensioni_ammesse=array('.jpg','.jpeg','.gif','.png'); //estensioni ammesse
//-------------------------------CONTROLLI CORRISPONDEZA CON IMPOSTAZIONI-------------------------
//Controllo esistenza file:
if(!isset($_FILES['foto_test']) || $_FILES['foto_test']['size']==0){
echo "Nessun file selezionato per l'upload";
//controllo dimensione ammessa:
}elseif($_FILES['foto_test']['size']>$dimensione_massima){
echo "Il file selezionato per l'upload supera dimensione massima di $dimensione_massima_Kb Kb";
}else{
$nome_file=$_FILES['foto_test']['name'];
$errore="";
//controllo estensione ammessa:
if($filtrare==1){
$estensione = strtolower(substr($nome_file, strrpos($nome_file, "."), strlen($nome_file)-strrpos($nome_file, ".")));
if(!in_array($estensione,$array_estensioni_ammesse)){
echo "Upload file non ammesso. Estensioni ammesse: ".implode(", ",$array_estensioni_ammesse)."
";
}
}
//controllo esistenza cartella di destinazione:
elseif(!file_exists($cartella_upload)){
echo"La cartella di destinazione non esiste</br>";
}else{
//-----------------------------------RINOMINO E CARICO LA FOTO----------------------------------
//creo la funzione per rintracciare l'estenzione:
function estensione($nome){
$trova_punto = explode(".", $nome);
$estensione = $trova_punto[count($trova_punto) - 1];
$estensione = strtolower($estensione);
if (isset($trova_punto[1]) == FALSE){
return "Nessuna estensione";
}
return $estensione;
}
// verifica l'esistenza del file
$file_temporaneo= $_FILES['foto_test']['tmp_name'];
// trova l'estensione del file
$estensione_file=estensione($nome_file);
// assegna un nome univooco al file
$nome_file=uniqid(file_).".".$estensione_file;
//esegue l'upload e controlla che vada a buon fine
if (move_uploaded_file($file_temporaneo, $cartella_upload . $nome_file)){
echo "Il file è stato caricato";
} else {
echo "Si è verificato un errore durante l'upload - RIPROVA";
}
}
//FINE CONTROLLI
}}
?>
Il problema è che fino a poco fa funzionava poi ho provato a continuare a scrivere il codice perchè dovevo aggiungerne un altra caratteristica ovvero che mi inserisse, dopo aver effettuato l'upload il nome (per come è stata rinominata) della foto in un database e non ha funzionato più..!! ho ripristinato il codice a prima di inserire lo script del database.. ma non funziona lo stesso??
Trovate qualche motivazione??
Grazie per l'aiuto..!!