[PHP] Sovrascrivere immagini in directory

Andrea9595

Nuovo Utente
24 Apr 2018
2
0
1
24
Ciao a tutti, sono nuovo sul forum e nuovo nel mondo della programmazione. Spero di ottenere un aiuto rapido e semplice da qualcuno di voi.

Ho un problema con il mio codice, in sostanza ho un codice di download di immagini in una directory "uploads" quello che vorrei fare è che ogni volta che un utente inserisce un immagine nella directory quella che c'era prima si cancellasse, cosi che ci fosse sempre e solo una foto nella cartella.
Ho creato delle sessioni perché è un applicazione che possono usare molti utenti ecc... ecc...

Quello che mi occorre capire è perché quando carico l'immagine dopo tutti i controlli carica l'immagine ma l'unlink non parte e non mi cancella le immagini che c'erano prima.

grazie


Lo script è questo :
PHP:
<?php

      error_reporting(~E_WARNING);
      session_start();
      //print_r($_SESSION);

      //creo una cartella con i permessi a 777
      $cartellacreata = $_SESSION['username']; //chiamo la cartella con l'id dell'user che la crea



    $target_dir = "uploads/$cartellacreata/"; //directory dentro la quale creo un altra cartella nominata con l'username dell'utente
    $target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]);
    $uploadOk = 1;
    $imageFileType = strtolower(pathinfo($target_file,PATHINFO_EXTENSION));

//controllo immagine
    if(isset($_POST["submit"])) {
        $check = getimagesize($_FILES["fileToUpload"]["tmp_name"]);
        if($check !== false) {
            echo "Ok  - " . $check["mime"] . ".";
            $uploadOk = 1;
        } else {
            echo "Bella foto ;).";
            $uploadOk = 0;
        }
    }
    // Controllo se già esiste
    if (file_exists($target_file)) {

        echo "Esiste già una foto uguale nel nostro database";
        $uploadOk = 0;
    }
    // Check file size
    if ($_FILES["fileToUpload"]["size"] > 50000000) {
        echo "la foto è troppo grande.";
        $uploadOk = 0;
    }
    // Permessi solo alcuni formati
    if($imageFileType != "jpg" && $imageFileType != "png" && $imageFileType != "jpeg"
    && $imageFileType != "gif" ) {
        echo "Scusa, solo JPG, JPEG, PNG & GIF files sono permessi.";
        $uploadOk = 0;
    }
    // Se ci sono dei problemi manda questo messaggio
    if ($uploadOk == 0) {
        echo " Scusa non abbiamo caricato la tua immagine per un errore.";
    // Se tutto ok vado a inserire l'immagine e cerco di cancellare tutte quelle che c'erano prima
    } else {
        if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file)) {

                $file = "uploads/$cartellacreata/*.jpg"; //codice di eliminazione immagine
                unlink($file);

            echo "Il file ". basename( $_FILES["fileToUpload"]["name"])." È stata caricata.";
        } else {
            echo " Ci dispiace, la tua foto non è stata caricata .";
        }
    }

    ?>
 
Ultima modifica di un moderatore:

Max 1

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
29 Feb 2012
3.978
295
83
@Andrea9595
Da regolamento del forum, come tutti noi sei tenuto ad usare il tag
code.gif
quando posti del codice, oppure la funzione codice dalla barra degli strumenti
box inserisci 2.png.JPG

Inoltre ti prego di leggere attentamente il regolamento generale del forum e quello di sezione dove posti
Grazie
Per questa volta te lo sistemo io ma mi raccomando per il futuro
 

Andrea9595

Nuovo Utente
24 Apr 2018
2
0
1
24
Perdonami, ho postato di fretta senza leggere il regolamento. Do subito una lettura , ti ringrazio per la pazienza e prometto di non ripetere errori del genere.
Grazie