Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1
    Utente di HTML.it L'avatar di taba93
    Registrato dal
    Oct 2007
    Messaggi
    83

    problema classe ridimensionamento immagini

    Ciao a tutti, sto usando la classe che trovate a questo indirizzo: http://free-script.it/post/Script_ph...zionale-54.htm

    per ridimensionare alcune immagini.
    La ho provata su un server aruba e fin li tutto bene. ho poi provato ad usare la stessa classe su un altro server linux ma mi da problemi. ho già verificato che chmod della cartella di upload sia 777 e che le librerie gd siano attive.

    In pratica appena includo il file che contiene la classe, il risultato che ottengo è quest'output:


    errore = array(); $this->Estensione = ""; $this->originalX = 0; $this->originalY = 0; $this->originalName = ""; $this->newX = 0; $this->newY = 0; if($this->urlimage==""){ array_push($this->errore,"Scegliere un file da ridimensionare"); }elseif(!file_exists($this->urlimage) || !is_file($this->urlimage)){ array_push($this->errore,"Il file selezionato non esiste"); } if(!is_numeric($this->maxX) || !is_numeric($this->maxY) || $this->maxX<0 || $this->maxY<0){ array_push($this->errore,"L'altezza e la larghezza dell'immagine devono essere numerici"); } if(!file_exists($this->folder) || !chmod($this->folder,0777)){ array_push($this->errore,"La cartella di destinazione non esiste o non � scrivibile"); } if($this->fisso!=0 && $this->fisso!=1){ array_push($this->errore,"La variabile di dimensione fissa deve essere 0 o 1"); } if($this->latofisso!="XY" && $this->latofisso!="X" && $this->latofisso!="Y"){ array_push($this->errore,"La variabile di lato fisso devono essere X o Y o XY"); } if(count($this->errore)>0){ return false; }else{ return true; } } function go(){ if($this->controlladati()){ $filename = basename($this->urlimage); $this->originalName = $filename; if($this->newName==""){$this->newName=$filename;} $this->Estensione = strtolower(substr($filename, strrpos($filename, "."), strlen($filename)-strrpos($filename, "."))); if($this->Estensione==".jpeg" || $this->Estensione==".JPEG"){ $handle_immagine = imagecreatefromjpeg($this->urlimage); } if($this->Estensione==".jpg" || $this->Estensione==".JPG"){ $handle_immagine = imagecreatefromjpeg($this->urlimage); } elseif($this->Estensione==".gif"){ $handle_immagine = imagecreatefromgif($this->urlimage); } elseif($this->Estensione==".png"){ $handle_immagine = imagecreatefrompng($this->urlimage); } else{ array_push($this->errore,"Formato immagine non valido"); return null; } $handle_immagine_adattata=$this->adatta($handle_immagine); imagejpeg($handle_immagine_adattata, $this->folder.$this->newName, 80); chmod($this->folder.$this->newName,0777); unset($handle_immagine); unset($handle_immagine_adattata); } } function adatta($handle_immagine){ $this->originalX=imagesx($handle_immagine); $this->originalY=imagesy($handle_immagine); if($this->fisso==1){ $this->newX=$this->maxX; $this->newY=$this->maxY; }else{ if($this->latofisso=="XY"){ if ($this->originalX/$this->originalY>$this->maxX/$this->maxY) { $this->newX=$this->maxX; $this->newY=($this->originalY/$this->originalX)*$this->maxX; } else { $this->newX=($this->originalX/$this->originalY)*$this->maxY; $this->newY=$this->maxY; } }elseif($this->latofisso=="X"){ $this->newX=$this->maxX; $this->newY=($this->originalY/$this->originalX)*$this->maxX; }elseif($this->latofisso=="Y"){ $this->newX=($this->originalX/$this->originalY)*$this->maxY; $this->newY=$this->maxY; }else{ if ($this->originalX/$this->originalY>$this->maxX/$this->maxY) { $this->newX=$this->maxX; $this->newY=($this->originalY/$this->originalX)*$this->maxX; } else { $this->newX=($this->originalX/$this->originalY)*$this->maxY; $this->newY=$this->maxY; } } } $tmp_immagine = imagecreatetruecolor($this->newX, $this->newY); $handle_immagine_adattata = imagecopyresampled($tmp_immagine, $handle_immagine, 0, 0, 0, 0, $this->newX, $this->newY, $this->originalX, $this->originalY); return $tmp_immagine; } } ?>

    e naturalmente l'immagine non viene ridimensionata


    Voi sapreste darmi una dritta sul perchè mi fa questa cosa? E' un problema di server o di qualche particolare settaggio del php.ini?

    Grazie in anticipo!!


  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,503
    Seriamente pensi che qualcuno legga quel codice scritto così?
    Mettilo dentro il tag [php] ed assicurati che sia ben formattato ed indentato prima di postare.

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2014
    residenza
    Voltati
    Messaggi
    913
    La classe l'hai modificata o l'hai lasciata così com'è?
    Visto che ti stampa metà del codice potrebbe esserci un problema di apici...
    Posta il codice prima della riga
    Codice PHP:
    $this->Estensione ""
    No

  4. #4
    Utente di HTML.it L'avatar di taba93
    Registrato dal
    Oct 2007
    Messaggi
    83
    @Alhazred non hai capito. quello che ho postato è l' "errore" che mi è uscito usando lo script.
    Ovviamente si vede che è parte del codice della classe ma non aveva senso formattarlo bene visto che era un errore.

    @tampertools grazie per la risposta!
    Comunque Questa la classe:

    Codice PHP:
    <?
    class resize{    
        var 
    $urlimage "";
        var 
    $maxX 100;
        var 
    $maxY 100;
        var 
    $fisso 1;
        var 
    $latofisso "XY";
        var 
    $folder "uploads/";
        var 
    $newName "";
        
        
        
        function 
    controlladati(){
            
    $this->errore = array();
            
    $this->Estensione "";
            
    $this->originalX 0;
            
    $this->originalY 0;
            
    $this->originalName "";
            
    $this->newX 0;
            
    $this->newY 0;
            
            if(
    $this->urlimage==""){
                
    array_push($this->errore,"Scegliere un file da ridimensionare");
            }elseif(!
    file_exists($this->urlimage) || !is_file($this->urlimage)){
                
    array_push($this->errore,"Il file selezionato non esiste");
            }
            if(!
    is_numeric($this->maxX) || !is_numeric($this->maxY) || $this->maxX<|| $this->maxY<0){
                
    array_push($this->errore,"L'altezza e la larghezza dell'immagine devono essere numerici");
            }
            if(!
    file_exists($this->folder) || !chmod($this->folder,0777)){
                
    array_push($this->errore,"La cartella di destinazione non esiste o non è scrivibile");
            }
            if(
    $this->fisso!=&& $this->fisso!=1){
                
    array_push($this->errore,"La variabile di dimensione fissa deve essere 0 o 1");
            }
            if(
    $this->latofisso!="XY" && $this->latofisso!="X" && $this->latofisso!="Y"){
                
    array_push($this->errore,"La variabile di lato fisso devono essere X o Y o XY");
            }
            if(
    count($this->errore)>0){
                return 
    false;
            }else{
                return 
    true;
            }
        }
        
        function 
    go(){
            if(
    $this->controlladati()){
                
    $filename basename($this->urlimage);
                
    $this->originalName $filename;
                if(
    $this->newName==""){$this->newName=$filename;}
                
    $this->Estensione strtolower(substr($filenamestrrpos($filename"."), strlen($filename)-strrpos($filename".")));
                if(
    $this->Estensione==".jpeg" || $this->Estensione==".JPEG"){
                    
    $handle_immagine imagecreatefromjpeg($this->urlimage);
                }
                if(
    $this->Estensione==".jpg" || $this->Estensione==".JPG"){
                    
    $handle_immagine imagecreatefromjpeg($this->urlimage);
                }
                elseif(
    $this->Estensione==".gif"){
                    
    $handle_immagine imagecreatefromgif($this->urlimage);
                }
                elseif(
    $this->Estensione==".png"){
                    
    $handle_immagine imagecreatefrompng($this->urlimage);
                }
                else{
                    
    array_push($this->errore,"Formato immagine non valido");
                    return 
    null;
                }
                
    $handle_immagine_adattata=$this->adatta($handle_immagine);
                
    imagejpeg($handle_immagine_adattata$this->folder.$this->newName80);
                
    chmod($this->folder.$this->newName,0777);
                unset(
    $handle_immagine);
                unset(
    $handle_immagine_adattata);
            }
        }
        
        function 
    adatta($handle_immagine){
            
    $this->originalX=imagesx($handle_immagine);
            
    $this->originalY=imagesy($handle_immagine);
            if(
    $this->fisso==1){
                
    $this->newX=$this->maxX;
                
    $this->newY=$this->maxY;
            }else{
                if(
    $this->latofisso=="XY"){
                    if (
    $this->originalX/$this->originalY>$this->maxX/$this->maxY) {
                        
    $this->newX=$this->maxX;
                        
    $this->newY=($this->originalY/$this->originalX)*$this->maxX;
                    } else {
                        
    $this->newX=($this->originalX/$this->originalY)*$this->maxY;
                        
    $this->newY=$this->maxY;
                    }
                }elseif(
    $this->latofisso=="X"){
                    
    $this->newX=$this->maxX;
                    
    $this->newY=($this->originalY/$this->originalX)*$this->maxX;
                }elseif(
    $this->latofisso=="Y"){
                    
    $this->newX=($this->originalX/$this->originalY)*$this->maxY;
                    
    $this->newY=$this->maxY;
                }else{
                    if (
    $this->originalX/$this->originalY>$this->maxX/$this->maxY) {
                        
    $this->newX=$this->maxX;
                        
    $this->newY=($this->originalY/$this->originalX)*$this->maxX;
                    } else {
                        
    $this->newX=($this->originalX/$this->originalY)*$this->maxY;
                        
    $this->newY=$this->maxY;
                    }
                }
            }
            
    $tmp_immagine imagecreatetruecolor($this->newX$this->newY);
            
    $handle_immagine_adattata imagecopyresampled($tmp_immagine$handle_immagine0000$this->newX$this->newY$this->originalX$this->originalY);
            return 
    $tmp_immagine;
            
        }


    }
    ?>
    e questo il file da cui la richiamo (la variabile $upload è il percorso del file che carico sul server):
    Codice PHP:
    <?php                    
    include("classe_resize.php");  
    $resize = new resize;
    $resize->urlimage "$upload";
    $resize->fisso 0;
    $resize->maxX 330;
    $resize->maxY 250
    $resize->latofisso "X";
     
    $resize->folder "uploads/";
    $resize->newName "prova.jpg";
    $resize->go();
     if(
    count($resize->errore)==0){             
               }
    else{ echo 
    implode("<br>"$resize->errore);   }
    ?>
    Non la ho modificata in alcun modo.
    Ti ringrazio!

  5. #5
    Utente di HTML.it
    Registrato dal
    Jun 2008
    Messaggi
    1,317
    penso che il problema più ovvio sia che usi gli short tag php e non sono abilitati
    sostituisci <? con <?php
    riprova e dimmi

  6. #6
    Utente di HTML.it L'avatar di taba93
    Registrato dal
    Oct 2007
    Messaggi
    83
    grazie mille era proprio quello il problema!!!

    Adesso però ne è sorto un altro. Lo script mi dice "La cartella di destinazione non esiste o non è scrivibile" mentre in realtà la cartella è presente ed impostata con chmod 777. Hai idea di cosa possa essere?

    Grazie e scusa per il disturbo!

  7. #7
    Utente di HTML.it
    Registrato dal
    Jun 2008
    Messaggi
    1,317
    prova inserendo il percorso completo utilizzando dirname

    var $folder = dirname(__FILE__) . "/uploads/";

    e sostituisci !file_exists con !is_dir

  8. #8
    var?? ma state scherzando??


    il mondo è andato avanti da quella volta.!
    Questa volta, più che un voto.. è favoreggiamento.

  9. #9
    Utente di HTML.it L'avatar di taba93
    Registrato dal
    Oct 2007
    Messaggi
    83
    @zacca94 niente da fare purtroppo il problema persiste in entrambi i casi

  10. #10
    Utente di HTML.it
    Registrato dal
    Jun 2008
    Messaggi
    1,317
    prova a togliere quel chmod dall'if, magari non hai i permessi per modificare i permessi da php anche se la cartella è scrivibile...

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.