Visualizzazione dei risultati da 1 a 8 su 8
  1. #1

    gestione photogallery con upload thumbnails e database

    Salve, ho cercato un po' in giro tra gli script PHP presenti nel sito, ma non ne ho trovato uno per photogallery che presenti queste caratteristiche:

    1) pagina di upload file con possibilità di descrizione/nome file (o didascalia)
    2) gestione tramite database
    3) generazione automatica thumbnails

    per quanto riguarda il punto 1, in pratica devo poter fare (esempio) l'upload del file1.jpg che comparirà in photogallery con la descrizione "paesaggio montano".

    Qualcuno può aiutarmi?
    www.blogotom.com
    Tecnologia mobile evoluta. News e risorse per cellulari e dispositivi multimediali.

  2. #2
    Utente di HTML.it L'avatar di polinet
    Registrato dal
    Nov 2000
    Messaggi
    993
    Hola xtommy2.
    Io faccio cosi:
    Creati una tabella con i seguenti campi:
    id
    foto1
    foto1p
    descrizione

    --------------------------------------------
    poi:
    sono sicuro che un form lo sai fare........!!!!!!!!!!!!!!!!!
    --------------------------------------------
    Il form lo invii a questa pagina (chiamala come ti pare)
    Codice PHP:
    <?php
    include // qui includi le classi
    $foto str_replace(' '''$foto); // nel caso hai spazi tra il nome della foto, esempio: pippo pippotto
    if($_FILES['foto']){
        
    $immagine=$_FILES['foto']['tmp_name'];
        
    $I=new IMG($immagine);
        
    $type=$I->getType();
        if(
    $type!="jpeg"&&$type!="png") echo "
    "
    ;
        else {
    $type=($type=="jpeg")?"jpg":$type;
            
    $nome=$_FILES['foto']['name'];
            if(
    file_exists(str_replace(".","_b","img/".$nome))) echo "Attenzione un'immagine con questo nome esiste già!!! Rinomina l'immagine.
    "
    ;
            else { 
                
    // immagine grande
                
    $I=new IMG($immagine);
                
    $I->resize_max(300,200); // scegli tu le dimensioni della immagine in questo caso 300 x 200
                
    $foto1=str_replace(".","_m.",$nome);
                
    $I->save("img/$foto1");
                
                
    $I=new IMG($immagine);
                
    $I->centro_proporzionato(150,130); 
                
    //Immagine piccola proporzionata, se vuoi escludila e fai la piccola come sopra scegliendo le dimensioni
                
    $foto1p=str_replace(".","_p.",$nome);
                
    $I->save("img/$foto1p");
                echo 
    "Immagine 1 creata.
    "
    ;
                echo 
    $nome;
            }
        }
    }

    if (
    $dir = @opendir("img")) // nome cartella a tua scelta in questo caso IMG
        
    {
       while ((
    $file readdir($dir)) !== false
           {
         if(
    $file != "." && $file != ".." && !is_dir("img/$file")) 
             {  
            
    $filename "img/".$file;
            if(
    substr($filename,-6,-3)=="_p.")
                {
            }
         }  
       }
    }
    closedir($dir);
    // qui la connessione data base
    // poi la query INSERT
    ?>
    Queste sono le classi da includere nella pagina che riceve i dati dal form.
    Codice PHP:
    <?php
    /* -----> dichiarazione funzione "SAVE"
            salva l'immagine con il nome passato
        */
        
    function save($nome,$qualita="60"){
            if(
    $this->_x==0||$this->_y==0) return FALSE;
            else {
                
    $func="image".$this->_type;
                
    $ok=call_user_func($func,$this->_img,$nome);
                if(
    $ok!=FALSE) return FALSE;
                else {
                    return 
    TRUE;
                }
            }
        }



        
    /*-----> dichiarazione funzione "IMG CENTRALE"
            prende l'area centrale dell'immagine di dimensioni definite 
            e la ridimensiona alle nuove dimensioni che vengono passate 
            GD2 nuove .... :o)
        */
        
    function centro_proporzionato($width="",$height=""){
            if(
    $this->_x==0||$this->_y==0) return FALSE;
            else {
                
    $scale=min($this->_x/$width,$this->_y/$height);
                
    $por_w=$width*$scale;
                
    $por_h=$height*$scale;
                
    $x=($this->_x-$por_w)/2;
                
    $y=($this->_y-$por_h)/2;
                
    $newimg=imagecreatetruecolor($width,$height);
                
    $ok=imagecopyresampled($newimg,$this->_img,0,0,$x,$y,$width,$height,$por_w,$por_h); //imagecopyresampled GD2
                
    $this->_x=$width;
                
    $this->_y=$height;
                if(
    $ok==FALSE) return FALSE;
                else {
                    
    $this->_img=$newimg;
                    return 
    TRUE;
                }
            }
        }


        
    /* -----> dichiarazione funzione "SAVE"
            salva l'immagine con il nome passato
        */
        
    function save($nome,$qualita="60"){
            if(
    $this->_x==0||$this->_y==0) return FALSE;
            else {
                
    $func="image".$this->_type;
                
    $ok=call_user_func($func,$this->_img,$nome);
                if(
    $ok!=FALSE) return FALSE;
                else {
                    return 
    TRUE;
                }
            }
        }
            
    ?>
    Dovrebbe funzionare!
    Spero di non aver dimenticato nulla.!
    Facci sapere!!!!!
    ¿Hasta la pasta?

  3. #3
    Utente di HTML.it L'avatar di polinet
    Registrato dal
    Nov 2000
    Messaggi
    993
    Infatti!!!! azz
    Mi ero dimenticato di questa classe:
    Codice PHP:
    //dichiaro il COSTRUTTORE    
        
    function IMG($file=""){
            if(
    $file!=""){
                
    $this->_x=0;
                
    $this->_y=0;
                
    $this->info($file);
                
    $this->load($file);
            }
        } 
    Sorry!!!!!

    Hasta la PaStA!!!
    ¿Hasta la pasta?

  4. #4
    Intanto grazie per la risposta, stanotte provo a mettere in opera il tutto.
    In effetti io il mio script ce l'ho già, purtroppo per ogni passaggio deve essere fatto singolarmente (non sono riuscito a includere tutto in un unica pagina), pertanto:
    - pagina di upload (con generazione di thumb)
    - pagina di inclusione dei file nel database (devo indicare nuovamente i file)
    Un po' scomodo...
    www.blogotom.com
    Tecnologia mobile evoluta. News e risorse per cellulari e dispositivi multimediali.

  5. #5
    Utente di HTML.it L'avatar di polinet
    Registrato dal
    Nov 2000
    Messaggi
    993
    Volendo puoi includere tutto in una pagina unica:
    Codice PHP:
    <?php
    if ($_SERVER['REQUEST_METHOD'] == 'GET'){
    ?>
    <form action="<?php echo $_SERVER['PHP_SELF'?>" method="POST">

    </form>
    <?php
    }elseif ($_SERVER['REQUEST_METHOD'] == 'POST'){
        
    //Qui includi le classi
                // qui ci metti lo script
                //poi fai L'insert al DB
    }else{
        die(
    "Azz non funziona");
    }
    ?>
    Ricorda che la cartella che conterra i file di settarla a CHMOD777

    Fammi sapere

    ¿Hasta la pasta?

  6. #6
    Utente di HTML.it
    Registrato dal
    Mar 2001
    Messaggi
    2,043
    scusate anch'io ho provato a seguire questo tutorial, ma quando clicco invia mi da questo messaggio d'errore:

    Fatal error: Cannot redeclare save() (previously declared in /web/htdocs/www.sito.it/home/pann_contr_comune/include_utente_classi_ins_gallery.php:5) in /web/htdocs/www.sito.it/home/pann_contr_comune/include_utente_classi_ins_gallery.php on line 48

  7. #7
    Utente di HTML.it L'avatar di polinet
    Registrato dal
    Nov 2000
    Messaggi
    993
    cosa ti da in linea 48?
    ¿Hasta la pasta?

  8. #8
    Utente di HTML.it L'avatar di byaur
    Registrato dal
    Aug 2004
    Messaggi
    1,061
    Originariamente inviato da prinzart
    scusate anch'io ho provato a seguire questo tutorial, ma quando clicco invia mi da questo messaggio d'errore:

    Fatal error: Cannot redeclare save() (previously declared in /web/htdocs/www.sito.it/home/pann_contr_comune/include_utente_classi_ins_gallery.php:5) in /web/htdocs/www.sito.it/home/pann_contr_comune/include_utente_classi_ins_gallery.php on line 48

    hai dichiarato la funzione save() 2 volte... è lì il problema!!!!!
    Chi di noi non vorrebbe
    sollevare il velo sotto cui sta nascosto il
    futuro...
    David Hilbert

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.