Pagina 1 di 7 1 2 3 ... ultimoultimo
Visualizzazione dei risultati da 1 a 40 su 276
  1. #1
    Utente di HTML.it L'avatar di xPilux
    Registrato dal
    Jul 2004
    Messaggi
    103

    [PILLOLA] upload+resize+thumbnails

    Visto che l'argomento trattato è stato il soggetto di molti degli ultimi post, e dato che è stato chiesto, ho deciso di scrivere questa pillola, sperando di scriverla bene e sperando che possa essere utile e chiara. Il fine di questa pillola è quello di sfruttare le potenzialità di PHP per fare l'upload di un immagine e creare un immagine ridimensionata per esempio a 400 pixel di altezza e allo stesso tempo creare una thumbnail da 75 pixel di altezza della stessa immagine.



    Per fare ciò organizziamo il filesystem in questo modo:

    codice:
        img_big   //cartella in cui metteremo le immagini
    
        img_small //cartella in cui metteremo le thumbnail
    
        include   //cartella in cui metteremo la classi php
    
           |_image.class.php
    
           |_upload.class.php
    
        tmp       //cartella temporanea in cui metteremo i file uploadati
    
        config.php
    
        index.php
    
        upload.php
    
        view.php


    Cosa dobbiamo fare:



    [1] Creare un form con 2 campi: uno sarà un campo di tipo file per scegliere l'immagine dal proprio hd e l'altro sarà semplicemente di tipo 'text',per scegliere il nome che l'immagine avrà sul server; se il campo non è compilato il file avrà il nome originale che avevo sul nostro hc.



    codice:
    <form action="upload.php" method="post" enctype="multipart/form-data">
    
    File:
    
    
    <input name="file" type="file">
    
    
    Nome:
    
    
    <input name="new_name" type="text">
    
    
    
    
    
    <input name="submit_upload" type="submit" value="Invia">
    
    </form>


    Non dimenticate enctype="multipart/form-data" altrimenti non funziona.



    [2] Tramite POST manderemo i dati del form alla pagina upload.php: qui richiameremo il file './include/upload.class.php' per fare l'upload dell'immagine, e tramite il file './include/image.class.php'verranno create le immagini e le thumbnails.



    Vediamo il codice delle 2 classi e poi commenterò il file upload.php che sfrutta appunto queste 2 classi:



    upload.class.php

    Codice PHP:

    <?

    class FileUpload{

        var 
    $up_dir;        //la directory temporanea in cui verrà uploadata l'img

        
    var $filename;    //il nome del file

        
    var $new_filename;    //il nuovo nome del file se vogliamo rinominarlo



        
    function FileUpload($up_dir){

            
    $this->up_dir $up_dir;

        }

          

        function 
    RenameFile($new_filename){

            
    $this->new_filename $new_filename;

        }



        function 
    Upload($files){

            if(!
    file_exists($this->up_dir))

                die(
    'La directory non esiste!');



            
    $this->filename = ($this->new_filename) ? $this->new_filename :$files['name'];

            if(
    trim($files["name"]) == "")

                die(
    "Non hai indicato il file da uploadare!");



            if(
    is_uploaded_file($files["tmp_name"])){

                
    move_uploaded_file($files["tmp_name"],$this->up_dir."/".$this->filename)

                or die(
    "Impossibile spostare il file;controlla l'esistenza o i permessi della directory!");

            }else

                die (
    "Problemi nell'upload del file ".$files["name"]);

        }

               

        function 
    DeleteFile(){

            
    unlink($this->up_dir '/' $this->filename);

        }

    }

    ?>


    Il costruttore della classe riceve solo un parametro: il nome della directory in cui uploadare il file.

    Quindi procederemo cosi:



    Codice PHP:

    $up 
    = new FileUpload('./tmp'); 


    Prima di effettuare l'upload abbiamo la possibilità di rinominare il file con il metodo RenameFile();; Quindi potremo rinominare il file sul server in questo modo:



    Codice PHP:

    $up
    ->RenameFile($_POST['new_name']);    //che è la variabile che arriva dal nostro form 


    A questo punto chiamando il metodo Upload, ci sarà l'effettivo upload del file:



    Codice PHP:

    $up
    ->Upload($_FILES['file']);    //gli mandiamo il file che arriva dal nostro form 


    Una volta uploadato il file possiamo creare le immagini e le thumbnails sfruttando la classe Image.



    image.class.php



    Codice PHP:

    <?PHP

    class Image{

        var 
    $src_filename;

        var 
    $src_witdh;

        var 
    $src_height;

        var 
    $src_type;

        var 
    $src_attr;

        var 
    $src_image;  

     

        function 
    Image($filename){

            
    $this->src_filename $filename;

            
    $this->GetImageInfo();

        }



        function 
    GetImageInfo(){

            list(
    $this->src_width,$this->src_height$this->src_type$this->src_attr) = getimagesize($this->src_filename);

        }



        function 
    CreateSourceImage(){

            switch(
    $this->src_type){

                case 
    1:

                    
    $this->src_image =imagecreatefromgif($this->src_filename);

                       break;

                case 
    2:

                    
    $this->src_image =imagecreatefromjpeg($this->src_filename);

                break;

                case 
    3:

                     
    $this->src_image =imagecreatefrompng($this->src_filename);

                break;

                default:    return 
    false;

            }



            return 
    true;

        }



        function 
    SaveProportionateImage($filename$quality$height){

            
    $dest_height $height;

            
    $ratio $this->src_height $dest_height;

            
    $dest_image imagecreatetruecolor$this->src_width $ratio,$dest_height);

            
    imagecopyresampled($dest_image$this->src_image0000,

                
    $this->src_width $ratio,

                
    $this->src_height $ratio,

                
    $this->src_width,

                
    $this->src_height);

            
    imagejpeg($dest_image$filename.'.jpg'$quality);

            
    imagedestroy($dest_image);

        }



        function 
    Free(){

            
    imagedestroy($this->src_image);

        }

    }

    ?>


    Il costruttore di questa classe accetta un parametro che è la path dell'immagine che andremo a ridimensionare. Quindi istanzieremo la classe così:



    Codice PHP:

    $img 
    = new Image('./tmp/' $up->filename);



    //$up->filename è il nome del file uploadato o il 'nuovo_nome' del file

    //in caso abbiamo usato il metodo RenameFile della classe FileUpload. 


    A questo punto, sfruttando la libreria GD di PHP, andremo a lavorare sulle immagini. Come prima cosa dovremo creare l'immagine sorgente leggendo il file dell'immagine uploadata: non sapendo a priori il tipo di immagine, faremo uno switch su type, restituito dalla funzione getimagesize(), che ritorno il tipo di immagine oltre alla sua dimensione.



    Per fare ciò useremo il metodo CreateSourceImage() della nostra classe Image.



    Codice PHP:

    $result 
    $img->CreateSourceImage(); 


    Questo metodo ritorna un booleano: true se è tutto andato a buon fine, false se il tipo di immagine non è supportato,o se addirittura il file uploadato non è un immagine.



    Se il risultato è false, non possiamo andare avanti, al contrario procediamo creando il l'immagine e poi la thumbnail. Semplicemente richiameremo lo stesso metodo due volte,mandando come parametro $height due altezze diverse.

    Il metodo in questione è SaveProportionateImage() che accetta 3 parametri:



    [*] $filename, che sarà il file in cui verrà salvata l'immagine ridimensionata.

    [*] $quality, che sarà un intero compreso tra 0 e 100, che il nostro metodo passerà alla funzione delle GD per creare l'immagine. 0 è la qualità minima, 100 la massima.

    [*] $height sarà l'altezza della massima della nostra immagine.



    In realtà il metodo può essere implementato facendo in modo che, se l'altezza dell'immagine originale sia inferiore a $height, questa non sia ridimensionata, altrimenti verrebbe ingrandita e quindi perderebbe qualità.

    Passeremo solo il parametro $height e non $width, in modo da controllare l'altezza dell'immagine che creeremo, senza però storpiarla o tagliarla;

    Ad ogni modo sarebbe facile implementare un secondo metodo che crei l'immagine prendendo altezza e larghezza come parametri.



    Quindi faremo:



    Codice PHP:

    $img
    ->SaveProportionateImage('./img_big' $up->filename100400);

    $img->SaveProportionateImage('./img_small' $up->filename10075); 


    L'immagine verrà perciò salvata due volte con lo stesso nome ma in cartelle diverse e con dimensione diversa.

    A questo punto chiameremo il metodo Free() della classe Image per liberare la memoria



    Codice PHP:

    $img
    ->Free(); 


    e subito dopo il metodo DeleteFile() della classe FileUpload, per liberare la memoria:

    Codice PHP:

    $up
    ->DeleteFile(); 


    Ora posto gli altri due file, che in realtà fanno quello che ho appena riassunto: in config.php, definisco semplicemento tutte le costanti che useremo nel nostro script:



    config.php



    Codice PHP:

    <?PHP

    define
    ('TMP_DIR''./tmp');

    define('IMAGE_DIR''./img_big');

    define('THUMB_DIR''./img_small');

    define('IMAGE_QUALITY'80);

    define('THUMB_QUALITY'70);

    define('IMAGE_HEIGHT'400);

    define('THUMB_HEIGHT'75);

    ?>


    upload.php, è il file che riceve i dati dal form,quindi non fa altro che sfruttare le classi e i metodi descritti sopra:



    upload.php

    Codice PHP:

    <?PHP

    if(!isset($_POST['submit_upload'])){

        
    header("Location: index.php");

    }else{

        include_once 
    'config.php';

        
    //faccio l'upload dell'img

        
    include_once './include/upload.class.php';

        if(!isset(
    $_FILES)) $_FILES $HTTP_POST_FILES;

        if(!isset(
    $_SERVER)) $_FILES $HTTP_POST_VARS;



        
    $up = new FileUpload(TMP_DIR);

        
    $up->RenameFile($_POST['new_name']);

        
    $up->Upload($_FILES['file']);

        
    //adesso ridimensiono l'img a 400 x 400

        
    include_once './include/image.class.php';

        
    $img = new Image(TMP_DIR '/' $up->filename);

        
    //creo l'immagine sorgente

        
    $result $img->CreateSourceImage();

        
    //se il tipo di immagine è supportato

        //salvo 2 file:

        //uno con l'img grande e uno con l'img piccola

        //nelle rispettive directory

        
    if($result){

            
    //salvo l'immagine con altezza 400 lasciandola proporzionata

            
    $img->SaveProportionateImage(IMAGE_DIR '/' $up->filenameIMAGE_QUALITYIMAGE_HEIGHT);

            
    //salvo l'immagine con altezza 75 lasciandola proporzionata

            
    $img->SaveProportionateImage(THUMB_DIR '/' $up->filenameTHUMB_QUALITYTHUMB_HEIGHT);

            
    //libero la memoria cancellando l'immagine sorgente

            
    $img->Free();

        }

        
    //se il tipo di img non è supportata

        //o se il file uploadato nn è un immagine

        
    else

            echo 
    'Immagine non valida
    '
    ;

        
    //In ogni caso cancello il file uploadato nella cartella ./tmp

        
    $up->DeleteFile();

        echo 
    '[url="view.php"]Guarde le immagini[/url]';

    }

    ?>


    Il file view.php, semplicemente visualizza le thumbnails e le linka alle immagini grosse



    view.php

    Codice PHP:

    <?PHP

    include_once 'config.php';



    $dir dir(THUMB_DIR);

    while(
    $img $dir->read()){

        if( (
    $img != '.') & ($img != '..') )

            echo 
    '[url="'.IMAGE_DIR.'/'.$img.'"][img]'.THUMB_DIR.'/'.$img.'[/img][/url]';

    }

    ?>


    Spero di non aver scritto qualche cavolata...in tal caso ditemelo!

    Spero anche che possa servire quello che ho scritto...fatemi sapere



    -Pilu-

  2. #2
    Bella pilu

    ci vediamo domani a lavoro!

    (-5 gg alle vacanze!! )
    eXtending-Php.net coming soon ...

  3. #3
    Utente di HTML.it L'avatar di pipu
    Registrato dal
    Jan 2004
    Messaggi
    92
    ottimissimo lavoro!
    finalmente! ci volevaaaa!
    dopo ore di lettura di tread incompleti ho finalmente qualcosa su cui studiare!
    Coder Club..Programmi per sapere chi sei!

  4. #4
    Utente di HTML.it L'avatar di xPilux
    Registrato dal
    Jul 2004
    Messaggi
    103
    OK,poi dimmi se va tutto bene o se mi sono dimenticato di spiegare qualche passo!ciao

  5. #5
    Utente di HTML.it L'avatar di gasmor
    Registrato dal
    Apr 2004
    Messaggi
    1,768
    ciao, la tua pillola è molto interessante ed utile.
    Grazie per aver trattato l'argamento

    però ho qualche problema a far funzionare il tutto.

    Ho creato nel mio server locale una cartella contenente l'esempio così come lo hai descritto. Però quando inserisco un file mi appare questa scritta:

    Fatal error: Call to undefined function: imagecreatefromjpeg() in c:\programmi\easyphp1-7\www\upload_thumbnail\include\image.class.php on line 49

    Cosa può essere?

  6. #6
    Utente di HTML.it L'avatar di luca200
    Registrato dal
    Apr 2002
    Messaggi
    4,120
    Originariamente inviato da gasmor
    Cosa può essere?
    Problemi con le librerie GD. Hai l'estensione installata/abilitata?

  7. #7
    Utente di HTML.it L'avatar di sko
    Registrato dal
    Jun 2003
    Messaggi
    273
    sono riuscito a fare qualche modifica x le mie esigenze...

    solo che se non riesco a ridurre la larghezza in caso fosse superiore a x pixel...

    suggerimenti?

  8. #8
    Utente di HTML.it L'avatar di gasmor
    Registrato dal
    Apr 2004
    Messaggi
    1,768
    non sono sicuro di averla, ora controllo.
    Grazie per l'aiuto. Ciao

  9. #9
    Utente di HTML.it L'avatar di xPilux
    Registrato dal
    Jul 2004
    Messaggi
    103
    visto che stai usando easyphp,
    mi sembra che puoi abilitare le estensioni usando il menu
    sulla tray icon

  10. #10
    per creare una thumb e mantenere le proporzioni:

    codice:
    <form action="test.php" method="post">
    larghezza
    
    <input type="text" name="larghezza">
    
    altezza
    
    <input type="text" name="altezza">
    
    <input type="submit" value="invia">
    </form>
    <?
    	if (isset($_POST['larghezza']))
    		$larghezza=$_POST['larghezza'];
    	else
    		$larghezza=0;	
    
    	if (isset($_POST['altezza']))
    		$altezza=$_POST['altezza'];
    	else
    		$altezza=0;	
    
    	if (($larghezza>400) || ($altezza>400))
    		if ($larghezza>$altezza)
    		{
    			$altezza = $altezza * 400/$larghezza;
    			$larghezza = 400;
    		}
    		else
    		{
    			$larghezza = $larghezza * 400/$altezza;
    			$altezza = 400;
    		}
    		
    		echo "altezza ".$altezza."
    ";
    		echo "larghezza ".$larghezza."
    ";		
    		
    ?>

  11. #11
    Utente di HTML.it L'avatar di gasmor
    Registrato dal
    Apr 2004
    Messaggi
    1,768
    si, non erano abilitate e con easyphp è stato semplicissimo.
    Ciao a tutti

  12. #12
    Utente di HTML.it L'avatar di xPilux
    Registrato dal
    Jul 2004
    Messaggi
    103
    sko, ma esattamente quale è il problema?
    ti da qualche errore?
    è l'upload che non va o il resize... :master:

  13. #13
    Utente di HTML.it L'avatar di sko
    Registrato dal
    Jun 2003
    Messaggi
    273
    Originariamente inviato da xPilux
    sko, ma esattamente quale è il problema?
    ti da qualche errore?
    è l'upload che non va o il resize... :master:

    no non dava errori

    e che non conosco le classi e nn sapevo come fare la piccola modifica

    cmq il problema si verificava quando uno inseriva un immagine lunga 1000px ma alta solo 300px! lasciava la lunghezza di 1000px!
    non so se è colpa del tuo script o delle mie modifiche!
    cmq grazie ho risolto

  14. #14
    Utente di HTML.it L'avatar di xPilux
    Registrato dal
    Jul 2004
    Messaggi
    103
    Ho riprovato il mio script prorpio con un immagine
    1000 x 300 e funziona!!
    Magari il prob era in qualche tua modifica...

  15. #15
    Utente di HTML.it L'avatar di sko
    Registrato dal
    Jun 2003
    Messaggi
    273
    Originariamente inviato da xPilux
    Ho riprovato il mio script prorpio con un immagine
    1000 x 300 e funziona!!
    Magari il prob era in qualche tua modifica...
    probabilmente visto che ancora devo studiare le classi..

    alla fine ho risolto cosi

    Codice PHP:
    if ($largo>$alto)
       {
          
    $div $largo/MAX_LARGO;
          
    $new_alto $alto/$div;
          
    $new_largo=MAX_LARGO ;
        }
        else
          {
           
    $div $alto/MAX_ALTO;
           
    $NEW_LARGO $largo/$div;
           
    $NEW_ALTO =300;
           } 
    per ora funziona

  16. #16
    Utente di HTML.it L'avatar di JoeP
    Registrato dal
    May 2004
    Messaggi
    558
    Ho letto la pillola... Molto interessante e utile...

    Avrei a proposito 2 domande:
    - E se il file specificato dall'utente esiste gia?
    - Portando il tutto sul mio host nessun problema, ma con Apache in locale credo di non avere l'estensione abilitata. Come faccio ad attivarla?

  17. #17
    Utente di HTML.it L'avatar di xPilux
    Registrato dal
    Jul 2004
    Messaggi
    103
    Se il file esiste gia,e non lo si rinomina,viene sovrascritto!
    Basta mettere un controllo prima di copiare l'immagine usando:
    Codice PHP:
    file_exists (filename); 
    Se esiste gia,la rinomini....


    Per abilitare l'estensione apri il tuo php.ini:

    cerca la stringa "extension=php_gd2.dll"
    e decommentala togliendo il ";" iniziale...



  18. #18
    Utente di HTML.it L'avatar di JoeP
    Registrato dal
    May 2004
    Messaggi
    558
    Grazie.

    Un'ultima cosa: e se l'immagine grande non voglio ridimensionarla, mantenedo le dimensioni originali?

  19. #19
    Utente di HTML.it L'avatar di xPilux
    Registrato dal
    Jul 2004
    Messaggi
    103
    Le immagini grandi vengono salvate nella cartella "img_big",
    quindi se vuoi visualizzare un immagine senza
    usare alcuna funzione di resize,basta che la linki
    normalmente: <img src = "img_big/filename" />

  20. #20
    Utente di HTML.it L'avatar di renzoz
    Registrato dal
    May 2001
    Messaggi
    305
    Scusate, ho testato script originale come da pillola di xPilux e funzia alla grande però mi dà un problemuccio, il filez che vado ad uploadare senza dargli il nome dal form conserva il nome originale ma raddoppia l'estensione:

    prova.jpg -> prova.jpg.jpg

    ho rovistato un pò le classi ma non riesco a trovarne la causa... chi mi aiuta?

  21. #21
    Utente di HTML.it L'avatar di JoeP
    Registrato dal
    May 2004
    Messaggi
    558
    Ho corretto quest'errore...

    L'avevo notato anch'io...

    Posterò il codice, adesso non ho tempo...

  22. #22
    Utente di HTML.it L'avatar di xPilux
    Registrato dal
    Jul 2004
    Messaggi
    103
    ...ciao!
    E' da un po che non ci sono e non avevo visto la risposta!
    Sì in effetti non avevo implementato tutto...
    la pillola era fatta solo per vedere le cose basilari dell'argomento.
    Cmq basterebbe fare un check sul nome del file e vedere se ha l'estensione o no,e quindi decidere se aggiungerla...

    -PILU-

  23. #23
    Utente di HTML.it L'avatar di renzoz
    Registrato dal
    May 2001
    Messaggi
    305
    nel mio caso tutte le immagini vengono caricate da una postazione windows quindi è chiaro che il nome di ogni file c'ha pure la sua estensione

  24. #24
    Utente di HTML.it L'avatar di renzoz
    Registrato dal
    May 2001
    Messaggi
    305
    cmq ho trovato il "bugghino":

    nel file image.class.php la riga
    imagejpeg($dest_image, $filename.'.jpg', $quality);
    va sostituita con
    imagejpeg($dest_image, $filename, $quality);

    e funzia tutto alla grande

    cmq complimenti, lo script è fichissimo, proprio quello che mi serviva.

    Grazie e ciao

  25. #25
    La pillola non l'ho letta ma mi hai fatto un piacere che non puoi nemmeno immaginare!!! La sola idea di dovermimettere a scrivere tutto quel codice mi dava ai brividi! Non tanto per il codice ma perchè sicuramente avrebbe dato tanti di quegli errori! Cmq se funziona grazie mille altriemnti stai attento stanotte che ti vengo a prendere a casa!!!!
    eCommerceRS.NET - Commerciante, vendi on-line!
    Il mio nick è mircov e non mirco!!!

  26. #26
    Utente di HTML.it L'avatar di xPilux
    Registrato dal
    Jul 2004
    Messaggi
    103
    ahahahhahah

  27. #27
    Utente di HTML.it L'avatar di james
    Registrato dal
    Jun 2002
    Messaggi
    1,481

    Errore in immagini ampie

    Ho provato la classe, ma se uso un 'immagine +tosto ampia ricevo l'errore

    "Fatal error: Allowed memory size of 20971520 bytes exhausted (tried to allocate 9932 bytes) in include/image.class.php on line 96"

    perchè? ma soprattutto, come posso risolvere?

  28. #28
    Utente di HTML.it
    Registrato dal
    Mar 2004
    Messaggi
    12
    Ciao, sono nuovo al php (cercate di comprendermi). Non so se ho le librerie GD installate. Come faccio a saperlo ? Ho letto che per esempio si puo usare uno script con questa istruzione: <? phpinfo() ?> ... ma dove dovrebbe comparire l'abilitazione o no di queste librerie? Io non vedo nessuna scritta contenente GD!

    Inoltre come si fa a sapere se si possono abilitare, dato che il server non è mio (devo contattare l'azienda di hosting?)
    Al mondo esistono 10 tipi di persone: quelli che conoscono il codice binario e quelli che non lo conoscono

  29. #29
    Utente di HTML.it L'avatar di james
    Registrato dal
    Jun 2002
    Messaggi
    1,481

    Re: Errore in immagini ampie

    Originariamente inviato da james
    Ho provato la classe, ma se uso un 'immagine +tosto ampia ricevo l'errore

    "Fatal error: Allowed memory size of 20971520 bytes exhausted (tried to allocate 9932 bytes) in include/image.class.php on line 96"

    perchè? ma soprattutto, come posso risolvere?
    Nessuna soluzione?? Solo io provo ad uplodare immagini più grandi di 800x600??? :master:

  30. #30
    Utente di HTML.it L'avatar di JoeP
    Registrato dal
    May 2004
    Messaggi
    558
    Dici sul serio?

    Più di 800x600 non avevo mai provato!
    NOOOOOOOO!!!!!!!!

  31. #31
    Utente di HTML.it L'avatar di james
    Registrato dal
    Jun 2002
    Messaggi
    1,481
    Originariamente inviato da JoeP
    Dici sul serio?

    Più di 800x600 non avevo mai provato!
    NOOOOOOOO!!!!!!!!
    800x600 x dire un numero, ho provato ad uplodare immagini anche da 1600x1200 e mi dava errore. Allora le ridimensionavo a mano a 800x600 e funzionava, quindi nn so l'esatta dimensione max, però se l'immagine è grande nn funziona...e nn va bene...la soluzione sarebbe aumentare la memoria a dispo di php, ma tutti lo sconsigliano. Provare x credere...

  32. #32
    Utente di HTML.it L'avatar di xPilux
    Registrato dal
    Jul 2004
    Messaggi
    103
    Ho provato ad uploadare un img 2272 x 1712 da 1MB e funziona benissimo sia con php4 che col 5...

    credo che si sia dovuto alla configurazione del memory_limit , nel php.ini..

  33. #33
    Utente di HTML.it L'avatar di james
    Registrato dal
    Jun 2002
    Messaggi
    1,481
    Originariamente inviato da xPilux
    Ho provato ad uploadare un img 2272 x 1712 da 1MB e funziona benissimo sia con php4 che col 5...

    credo che si sia dovuto alla configurazione del memory_limit , nel php.ini..
    a quanto lo hai settato?

  34. #34
    mi spiegate questa sintassi?

    codice:
    $this->filename = ($this->new_filename) ? $this->new_filename :$files['name'];
    eCommerceRS.NET - Commerciante, vendi on-line!
    Il mio nick è mircov e non mirco!!!

  35. #35
    xPilux sei un grande! Grazie a questa tua pillola ho rispoarmiato parecchio tempo (quello che avrei impiegato per capire cosa dovevo usare, per leggermi le spiegazioni delle funzioni, per correggere gli errori, ecc.). Ci ho messo 10 minuti ad adattare il codice al mio applicativo (un catalogo on-line nel quale inserire i prodotti. Lo script mi serviva per la crazione dell thumbs). Da questo capisci quanto tempo ho risparmiato. Grazie mille!
    eCommerceRS.NET - Commerciante, vendi on-line!
    Il mio nick è mircov e non mirco!!!

  36. #36
    Utente di HTML.it L'avatar di xPilux
    Registrato dal
    Jul 2004
    Messaggi
    103
    mi spiegate questa sintassi?


    $this->filename = ($this->new_filename) ? $this->new_filename :$files['name'];

    Codice PHP:
    $a = (10) ? "ciao" "arrivederci" 
    cioè

    Codice PHP:
    if(1<10){
     
    $a "ciao";
    }
    else{
     
    $a "arrivederci";


  37. #37
    Utente di HTML.it L'avatar di xPilux
    Registrato dal
    Jul 2004
    Messaggi
    103
    Originariamente inviato da james
    a quanto lo hai settato?

    Ho provato a settare il memory_limit da 8M (default) a 1M
    ma funziona lo stesso...quindi il problema nn credo sia qui...

  38. #38
    Salve gente,
    ottima pillola xPilux!

    ho testato lo script in locale (win/apache/php4.3.7)
    e solo una cosa non mi torna:

    quando carico un'immagine .jpg e imposto il nome, il file caricato non ha estensione (.jpg) ma solo il nome , tuttavia il browser la riconosce come immagine.


  39. #39
    Utente di HTML.it L'avatar di james
    Registrato dal
    Jun 2002
    Messaggi
    1,481
    Originariamente inviato da xPilux
    Ho provato a settare il memory_limit da 8M (default) a 1M
    ma funziona lo stesso...quindi il problema nn credo sia qui...
    Ho preso lo script pari pari a come lo hai scritto. Lo stai testando su una macchina windows o linux?

  40. #40
    su windows non c'è limite di memoria quindi funziona con qualsiasi immagine inserite, ma sui sistemi posix (quindi unix, linux e cosi via) e sui sistemi bsd( freebsd, netbsd, openbsd e cosi via) c'è, di conseguenza dovete fare attenzione a che tipo di immagine caricate...tenente conto che ad es un'immagine a colori 800x600 RGB e non RGBA (quindi a 16 milioni di colori e non 4 miliardi) prende:
    800*600*3=1440000byte...che sono circa un mb, se mette un'immagine RGBA sempre a 800x600 diventano 1920000 ovvero un mb e 800 kappa...quindi se già ci vuole un mb di memoria SOLO per l'immagine è ovvio che poi lo script muore xche in esecuzione lo script php fa altre cose e quindi magari ci sono altri handler aperti, file caricati e altro e quindi finisce la memoria, per gestire immagini MOLTO grandi ci vuole il codice VERAMENTE ottimizzato e strutturato in maniera inteliggente.
    The fastest Redis alternative ... cachegrand! https://github.com/danielealbano/cachegrand

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.