Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente bannato
    Registrato dal
    Feb 2011
    Messaggi
    85

    [PHP] Problemi/Bug Upload Foto

    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"], 64);
                                
                
    //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.......

  2. #2

    Re: [PHP] Problemi/Bug Upload Foto

    Originariamente inviato da Drummelo
    ...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?!
    Questo dipende probabilmente dal fatto che la vecchia foto è ancora nella cache del browser il quale, non essendo cambiato il nome dell'immagine, non si rende conto della modifica.
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  3. #3
    Utente bannato
    Registrato dal
    Feb 2011
    Messaggi
    85
    potrebbe, xò lo fa ogni tanto. Cioè, con alcuni lo fa, con altri non lo fa.... Come mai? Ho anche provato a chiudere il browser e riavviare, non cambia nulla quando vado a caricare una foto...

    Ci deve essere qualche problema a monte che mi comporta anche l'altro errore, cioè che non mi carica la foto nonostante passi senza problemi i controlli.... a non riesco a capire quale possa essere...

  4. #4
    Utente bannato
    Registrato dal
    Feb 2011
    Messaggi
    85
    nessuno riesce ad aiutarmi?

  5. #5
    Prova a farti stampare con delle "echo" i risultati delle istruzioni: "file_exists" e a mettere delle "echo" all'interno degli if che utilizzi per controllo se il file esiste già sul server.

  6. #6
    Utente bannato
    Registrato dal
    Feb 2011
    Messaggi
    85
    Ho risolto. Grazie a ebarat per avermi dato l'idea.

    Il problema era semplicemente un "incasinamento" dovuto al fatto che si cancellava una foto con un nome uguale a quello della foto che si stava uploadando, un conflitto di nomi in pratica.

    Ho risolto aggiungendo un numero random al nome della foto.
    In pratica, quando viene caricata una nuova foto, genero un numero random e il nome della foto diventa: nomeutente + numerorandom + estenzione.
    Per motivi vari, quando genero il numero random, me lo salvo nel database utenti, esattamente nel record stesso dell'utente cosi da averlo disponibile pquando si vuole sostituire la foto.

    Grazie ancora, siete utilissimi come sempre. Alla prox!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.