Ciao a tutti.
Quello che ho bisogno è semplicemente dare la possibilità ad ogni utente di inserire una, e una soltanto, foto che compaia nel profilo. Nel momento in cui la cambia, quella vecchia viene cancellata. In tutto questo, quando viene fatto l'upload della foto, assegno un nuovo nome alla foto che per comodità è il nome stesso dell'utente più l'estenzione della foto.
Ora.. Io ci sono riuscito e funziona. Però mi da ogni tanto qualche "bug". Ad esempio a volte non mi carica la foto nonostante passi tutte le misure di controllo. E mi succede anche (questa è incredibile) che, nonostante io tramite ftp vada a cancellare un immagine dell'utente e quindi non è più presente sul server, se vado a caricare un'altra immagine mi dice che la foto nuova è stata caricata con successso ma mi ricompare la foto che avevo cancellato!!!! Ma com'è possibile?!
Vi posto il codice di upload che ho fatto io. Per qualsiasi errore che ho fatto o qualsiasi pastrocchio, per favore ditemelo che non mi offendo!
Codice PHP:
$id = $_POST['id'];
$user = $_POST['user'];
//controlliamo che il file rispetti le dimensioni impostate
if ($_FILES["file"]["size"] < 2042000){
//controlliamo se ci sono stati errori durante l'upload
if ($_FILES["file"]["error"] > 0){
echo "Codice Errore: " . $_FILES["file"]["error"];
}else{
//stampo alcune informazioni sul file
//estensione del file (mi serve quando cambio il nome del file)
$est = substr($_FILES["file"]["type"], 6, 4);
//tipo di file (per limitare i tipi di file da uploadare)
$tipo = $_FILES["file"]["type"];
//controllo estensione consentita
if(($tipo !== 'image/jpeg') && ($tipo !== 'image/jpg') && ($tipo !== 'image/gif') && ($tipo !== 'image/bmp')){
die("Estensione del file non consentita.");
}
//nome nuovo
$nome_nuovo = $user;
$_FILES["file"]["name"] = $nome_nuovo . '.' . $est;
//controllo se il file esiste già sul server e lo cancello (tutte le estensioni possibili)
if (file_exists("img/utenti/" . $nome_nuovo . ".jpg")){
unlink("img/utenti/" . $nome_nuovo . ".jpg");
}
if (file_exists("img/utenti/" . $nome_nuovo . ".jpeg")){
unlink("img/utenti/" . $nome_nuovo . ".jpeg");
}
if (file_exists("img/utenti/" . $nome_nuovo . ".gif")){
unlink("img/utenti/" . $nome_nuovo . ".gif");
}
if (file_exists("img/utenti/" . $nome_nuovo . ".bmp")){
unlink("img/utenti/" . $nome_nuovo . ".bmp");
}
//sposto il file caricato dalla cartella temporanea alla destinazione finale
move_uploaded_file($_FILES["file"]["tmp_name"], "img/utenti/" . $_FILES["file"]["name"]);
echo 'Foto caricata con successo!';
}
}else{
echo "Dimensione foto maggiore di quella consentita.";
}
Per favore aiutatemi che non so davvero più che fare.......