Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    107

    funzione file_exists ed estensione

    C'è un modo per evitare di specificare l'estensione quando si cerca se esiste un file con la funzione file_exists?

    mi spiego meglio, mi serve sapere se in una data cartella è presente il file di tipo immagine logo.xxx. Questo, se esiste, può essere .gif , .jpeg , .jpg , .png o .bmp, però non lo so.
    Se non c'è, carico un file immagine che so per certo esistere, default.gif.
    Dal codice si capisce tutto:

    Codice PHP:
    $url_img_utente "image\logo"// riga incriminata
    if(file_exists($url_img_utente)) {
      echo 
    "[img]".$url_img_utente."[/img]
    "
    ;
    }     
    else {
      echo 
    "[img]image\default.gif[/img]
    "
    ;

    c'è un modo per non specificare l'estensione sulla seguente riga incriminata? ad esempio mettendo caratteri speciali, o fare in modo che non venga considerato l'xxx...
    $url_img_utente = "image\logo."."xxx";


    L'unica soluzione che ho trovato ora è fare 6 if(file_exists(..)), uno per ogni estensione diversa..ma seppur corretta speravo di trovare qualcosa di meglio.

  2. #2
    In questo caso più che controllare con file_exists, dovresti "elencare" i file presenti nella cartella e scorrere l'elenco controllando se c'è uno con il nome che stai cercando.
    Faranno fatica a credere, quelli che prendono le autorità per la verità, e non la verità come autorità.

  3. #3
    Utente di HTML.it
    Registrato dal
    Aug 2009
    Messaggi
    76
    Codice PHP:
    <?php
    $url_img_utente 
    $_POST['form_file'];
    if(
    file_exists($url_img_utente)) {
      echo 
    "Ecco la tua immagine:";
      echo 
    "[img]$url_img_utente[/img]
    "
    ;
    }     
    else {
      echo 
    "L'immagine non esiste.";
    }
    ?>

  4. #4
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    107
    Originariamente inviato da Ugly Mau
    In questo caso più che controllare con file_exists, dovresti "elencare" i file presenti nella cartella e scorrere l'elenco controllando se c'è uno con il nome che stai cercando.
    No, questa procedura nel mio caso non va bene e ti spiego perchè..in effetti ho sbagliato io perchè volendo semplificare le cose, per essere più chiaro, ho tolto una parte del codice che riguarda il nome dei file che potrei avere nella cartella.
    Allora, mi spiego meglio: ad ogni utente registrato nel sito associo un'immagine (l'avatar), la quale viene caricata da un form e salvata sulla cartella del server in questo con questo nome logo_nome_utente.xxx. Quindi, nella pagina riservata all'utente visualizzo la sua immagine, se l'ha caricata, altrimenti l'immagine di default default.gif (che so per certo che esista).

    A questo punto, nella cartella image, posso avere diversi file immagine, tipo logo_mario.gif , logo_tony.jpeg, logo_fra.png , ecc. Ovviamente il nome utente è chiave primaria.
    Quello che voglio fare è sapere se esiste un file logo_nome_utente indipendentemente dall'estensione: se c'è lo carico, altrimenti visualizzo l'imm di default.
    Ecco il codice completo:
    Codice PHP:
    $utente $_SESSION['utente'];
    $url_img_utente "image\avatar\logo_".$utente.".gif";
    if(
    file_exists($url_img_utente)) { 
      echo 
    "[img]".$url_img_utente."[/img]
    "
    ;
    } else { 
      echo 
    "[img]image\avatar\default.gif[/img]
    "



    Azz...mi sono appena reso conto però che possono esserci due file immagine relativi allo stesso nome utente, tipo logo_mario.jpeg e logo_mario.gif perchè nella funzione che uso per caricare le immagini e ridimensionarle controllo solo che il file sia di tipo immagine.

  5. #5
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    107
    buongiorno...allora ieri sera ero un po' fuso, e ragionandoci meglio stamattina sono arrivato alla conclusione che il problema potrebbe essere spostato a valle!
    allora, come già detto, io faccio caricare all'utente un'immagine come logo attraverso un form; dopodichè uso uno script per verificare che sia un file di tipo immagine, che abbia estensione gif, jpeg, jpg, bmp o png, per ridimensionare l'immagine e infine per salvarla in una cartella del server.
    Nei passi finali di questo script, prima di salvarla, uso la funzione imagejpeg
    [NB: Descrizione
    bool imagejpeg ( resource image [, string filename [, int quality]] )
    imagejpeg() creates a JPEG file from the given image.
    ]

    alla quale passo il resource image datomi dalla funzione imagecreatetruecolor() , la folder di destinazione e l'intero 80 come qualità.
    Il problema qual è? che mi ridimensiona e salva l'immagine correttamente, ma mi mantiene l'estensione dell'immagine originale (cioè carico dal form l'img pippo.gif e mi salva nella cartella l'img ridimensionata pippo.gif e non pippo.jpeg). Come mai? pensavo che questa funzione salvasse l'immagine in jpeg visto che si chiama imagejpeg.

    Se riuscissi a salvarla in questo formato, dopo, per caricare l'avatat personale dell'utente (vedi problema origianario) non mi resta che ricercare se esiste il file logo_nome_utente.jpeg (essendo sicuro che l'estensione sia quella).

    Penso di aver spiegato bene questa volta il problema!

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.