Tieni ti "do" questo script, tanto non mi serve più ho una classe nella mia applicazione per questo e penso che passerò a databse only quando prima.
Ovviamente devi cambiare il percorso file, c'è anche la gestione dei tipi di file consentiti e la massima dimensione , così come l'update in databese di nuove immagini e l'unlink della vecchia immagine del server..cioè è completo, un pò spaghettato ma funziona benissimo
Codice PHP:
function updatefoto(){
$rand = uniqid (rand (0,100000));
$mail = $_SESSION['mail'];
$varrayfile = array (
"image/gif",
"image/png",
"image/jpg",
"image/jpeg",
"image/bmp",
"image/jpd",
"image/ico"
);
//echo var_dump (strtolower(($varrayfile[2])));
$maxfile_size_var = 2500000;
$file_tmp_neme = $_FILES['foto']['tmp_name'];
$file_real_name = ($_FILES['foto']['name'] . $rand . $_SESSION['id']);
$file_type = $_FILES['foto']['type'];
$maxfile_size_gett = $_FILES['foto']['size'];
if ($file_tmp_neme == NULL){
return true;
}else{
if (!@in_array ($_FILES['foto']['type'], $varrayfile)) {
echo "Questa non è un immagine";
}else{
if ($maxfile_size_gett = $_FILES['foto']['size'] > $maxfile_size_var) {
print "Scelgiere un file Max 2.5 Mb";
}else{
opendir("images/avatar/");
$queryfordelete = mysql_query ("
select foto
from utenti
where
mail = '$mail'
");
$read = mysql_fetch_assoc ($queryfordelete);
$old_foto_ = $read['foto'];
unlink ("images/avatar/".$old_foto_);
move_uploaded_file ($file_tmp_neme,"images/avatar/".$file_real_name.".png");
closedir ("images/avatar");
$query = mysql_query("
update utenti
set
foto
= '$file_real_name.png'
where mail = '$mail'
");
$query_for_post_simple = mysql_query ("
update post set fotoid = '$file_real_name.png'
where mail = '$mail'
");
}
}
}
}