Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it L'avatar di dany0
    Registrato dal
    Feb 2003
    Messaggi
    422

    rinominare estensione file in base a controllo

    ciao a tutti io ho una fotogallery gestita in modo da immettere una cartella di foto via ftp e poi creare in automatico la relativa gallery.

    ho però un problema....se le foto sono .JPG non ne viene caricata l'anteprima mentre se sono .jpg si (quindi maiusciolo e minuscolo)..

    lo script di controllo estensioni per inserire i nomi nel db è questo





    function file_extension( $f ) { return array_pop( explode( ".", ( string ) $f ) ); }

    $allow = Array( 'jpg', 'gif', 'png', 'bmp', 'jpeg' );

    if ($handle = opendir("fotogallery/immagini/$cartella/")) {
    while (false !== ($file = readdir($handle))) {

    if( in_Array( strtolower( file_extension( $file ) ), $allow ) ) {

    $query2="insert into tabella_foto(gallery,commento,immagine) values($rig[id],'$t','$cartella/$file')";
    $ris=mysql_query($query2,$conn) or die ("errore query8");

    ..........

    mentre quello dell'anteprima delle foto è questo





    $file=$_GET[file];


    $hsize = $rigaopzioni[altezzafoto];
    $wsize = $rigaopzioni[larghezzafoto];

    $im_size = GetImageSize($file);
    $imageWidth = $im_size[0];
    $imageHeight = $im_size[1];
    $thumb_width = $wsize;
    $thumb_height = $hsize;
    $im2 = ImageCreateFromJPEG($file);

    if ($imageWidth>=$imageHeight) {
    $width = $thumb_width;
    $height = ($width/$imageWidth)*$imageHeight;
    } else {
    $height = $thumb_height;
    $width = ($height/$imageHeight)*$imageWidth;
    }
    $im = imageCreateTrueColor($width, $height);

    if (function_exists('ImageCopyResampled')) {
    ImageCopyResampled($im,$im2, 0, 0, 0, 0, $width, $height, $imageWidth, $imageHeight);
    } else {
    ImageCopyResized($im,$im2, 0, 0, 0, 0, $width, $height, $imageWidth, $imageHeight);
    }

    Header("Content-type: image/jpg");
    Imagejpeg($im, '', 85); //85 è la qualità (da 1 a 100)
    ImageDestroy($im);
    ImageDestroy($im2);

    ........

    ora a me par meglio modificare l'estensione del file da JPG a jpg quando ne leggo il nome ma non so bene come anche se forse sarebbe (ma qui buoi completo) più facile far caricare anche i JPG nelle anteprime........

  2. #2
    Utente di HTML.it L'avatar di gianiaz
    Registrato dal
    May 2001
    Messaggi
    8,027
    semplicemente controlla l'estensione del file usando la funzione strtolower , in questo modo verifichi il nome del file portato in minuscolo, quindi il file può chiamarsi sia .JPG che .jpg.

    ciao

  3. #3
    Utente di HTML.it L'avatar di dany0
    Registrato dal
    Feb 2003
    Messaggi
    422
    se leggi lo script vedi che uso già quella funzione....ma i JPG non mi vanno bene...lo so anch'io che accetta sia jpg che JPG ma io vorrei o rinominare i JPG in jpg qualore ne trovasse oppure fare si che nelle anteprime vengano caricate tutte e due le estensioni.....

  4. #4
    Utente di HTML.it L'avatar di dany0
    Registrato dal
    Feb 2003
    Messaggi
    422
    ok allora ho fatto un passettino in avanti : ho testato il controllo
    if....=jpg
    e
    if....=JPG

    ora devo scoprire come rinominare il file

  5. #5
    Utente di HTML.it L'avatar di gianiaz
    Registrato dal
    May 2001
    Messaggi
    8,027
    Originariamente inviato da dany0
    se leggi lo script vedi che uso già quella funzione....ma i JPG non mi vanno bene...lo so anch'io che accetta sia jpg che JPG ma io vorrei o rinominare i JPG in jpg qualore ne trovasse oppure fare si che nelle anteprime vengano caricate tutte e due le estensioni.....
    sorry, non avevo visto, ma è solo una questione di estetica il fatto di rinominare quindi?

    comunque

    rename($filename,strtolower($filename));

    www.php.net


    ciao

  6. #6
    Utente di HTML.it L'avatar di dany0
    Registrato dal
    Feb 2003
    Messaggi
    422
    bhe allora no xchè (n me lo chiedere) il file che crea le anteprime non accettta JPG ma solo jpg.....cm q ho risolto : post nel caso servisse a qualcuno....


    //parte vecchia
    function file_extension( $f ) { return array_pop( explode( ".", ( string ) $f ) ); }

    $allow = Array( 'jpg', 'gif', 'png', 'bmp', 'jpeg' );

    if ($handle = opendir("fotogallery/immagini/$cartella/")) {
    while (false !== ($file = readdir($handle))) {

    if( in_Array( strtolower( file_extension( $file ) ), $allow ) ) {



    //parte aggiunta
    $keys=$file;
    $keys = explode(".",$keys);
    reset ($keys);
    $contafile=0;
    while ((list(,$nomefile)=each($keys))&($contafile<1)) {
    $nomefile=trim($nomefile);
    $nom=$nomefile;
    if(file_extension( $file )=="JPG"){
    $nuovonome=$nom.".jpg";
    rename("fotogallery/immagini/$cartella/$file", "fotogallery/immagini/$cartella/$nuovonome"); }
    $contafile=$contafile+1;
    }
    }

    e poi continua con lo scritp riportato sopra

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.