Visualizzazione dei risultati da 1 a 7 su 7

Discussione: server strano

  1. #1

    server strano

    Sul mio server ho un problema nn mi riesce a fare il resize delle immagini.
    Le librerie gd sn attive ma come mai nn funge?

    l'upload funge mentre il resize automatico con l'upload no help me

    versione di php PHP Version 4.3.9

  2. #2

  3. #3
    o.0 che script usi per il resize automatico?

  4. #4
    una classe per fare il resize in php

    Codice PHP:
    class resize{    
        var 
    $urlimage "";
        var 
    $maxX 100;
        var 
    $maxY 100;
        var 
    $fisso 1;
        var 
    $latofisso "XY";
        var 
    $folder "public/";
        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)){
                
    array_push($this->errore,"La cartella di destinazione non esiste");
            }
            if(!
    chmod($this->folder,777)){
                
    array_push($this->errore,"La cartella di destinazione 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==".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,777);
                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;
            
        }


    questo codice lo richiamo in un'altra pagina

    Codice PHP:
    include("classe_resize.php"); 
    $resize = new resize;
    $resize->urlimage $cartella_upload.$_FILES['file1']['name'];
    $resize->fisso 0;
    $resize->maxX 100;
    $resize->maxY 100;
    $resize->latofisso "XY";
    $resize->folder "foto/albums/";
    $resize->newName $_FILES['file1']['name'];
    $resize->go();

    if(
    count($resize->errore)==0){
        echo 
    "Nome file originale: ".$resize->originalName."
    "
    ;
        echo 
    "Altezza file originale: ".$resize->originalY."
    "
    ;
        echo 
    "Larghezza file originale: ".$resize->originalX."
    "
    ;
        echo 
    "Nuova Altezza: ".$resize->newY."
    "
    ;
        echo 
    "Nuova Larghezza: ".$resize->newX."
    "
    ;
    }else{
        echo 
    implode("
    "
    $resize->errore);

    ecco invece dove richiamo la classe e mi faccio il resize.

    la cosa strana è che in locale tutto questo funge. testato con due server di prova Easyphp e Wamp

    ma nel vero server dove tengo il sito questa classe nn funge

  5. #5
    Utente di HTML.it L'avatar di mariox
    Registrato dal
    Nov 2006
    Messaggi
    837
    hai controllato bene il percorso di destinazione ?
    Il file $cartella_upload che valori contiene?
    hai controllato i permessi di scrittura nella cartella dove inserisci le immagini ridimensionate?

  6. #6
    l'errore cmq è questo

    if(!chmod($this->folder,777)){
    array_push($this->errore,"La cartella di destinazione non è scrivibile");
    }

    in pratica mi esce l'errore La cartella di destinazione non è scrivibile

    strano perchè io ho settato la cartella dal dreamweaver con le autorizzazioni corrette in pratica 777
    ma non so come fare.


    if(!chmod($this->folder,777)){

    in questa riga in pratica c'era 0777 e lo stesso nn fungeva, e lo stesso con 777

    in poche parole le autorizzazioni coincidono

    la cartella $cartella_upload è buona infatti coincide ed è ok!

  7. #7

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 © 2024 vBulletin Solutions, Inc. All rights reserved.