Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 19
  1. #1

    Resize al volo: Problema permessi!!

    Ciao a tutti, ho un problema molto strano con delle immagini jpg da ridimenzionare al volo.

    Premetto che questo sistema l'ho sempre usato(con altre immagini dello stesso sito) e ha sempre funzionato correttamente

    Ho uplodato una serie di foto nuove sul server e le richiamo in questo modo:
    <img src='resizer.php ?w=191&h=144&img_path=images/foto.jpg' title='blabla' caption='blabla' />

    L'immagine non viene mostrata e se richiamo la pagina che fa il resize e in querystring gli passo il percorso della foto, mi restituisce questo:

    Warning: imagejpeg() [function.imagejpeg]: Unable to open 'blablabla' for writing: Permission denied in /home/www/5bdf89763527da301a723c15f36dcee6/web/resizer.php on line 78

    Warning: imagecreatefromjpeg(ecc ecc ecc) [function.imagecreatefromjpeg]: failed to open stream: No such file or directory in /home/www/5bdf89763527da301a723c15f36dcee6/web/resizer.php on line 22

    Warning: imagejpeg(): supplied argument is not a valid Image resource in /home/www/5bdf89763527da301a723c15f36dcee6/web/resizer.php on line 23

    Warning: imagedestroy(): supplied argument is not a valid Image resource in /home/www/5bdf89763527da301a723c15f36dcee6/web/resizer.php on line 24


    Il problema credo sia relativo ai permessi, attualmente ho settato tutto su 777, e non funziona... ma la cosa assurda č che alcune immagini(8 su 30) risultano visibili e ridimenzionate correttamente... e non so come spiegarmelo, le ho anche uplodate insieme... č assurdo!

    Mi date una mano a capire cosa nn va?
    Perchč nn digerisce alcune foto?

    Grazie

  2. #2

    Re: Resize al volo: Problema permessi!!

    Originariamente inviato da Scellino02
    Warning: imagejpeg() [function.imagejpeg]: Unable to open 'blablabla' for writing: Permission denied in /home/www/5bdf89763527da301a723c15f36dcee6/web/resizer.php on line 78

    Warning: imagecreatefromjpeg(ecc ecc ecc) [function.imagecreatefromjpeg]: failed to open stream: No such file or directory in /home/www/5bdf89763527da301a723c15f36dcee6/web/resizer.php on line 22
    'blablabla' ed 'ecc ecc ecc'? ma li hai cambiati tu?

  3. #3
    si si, li ho cancellati io... per non riportare quella riga lunga...
    ...mi sai aiutare?

  4. #4
    se mi posti i warning che ti ritorna (senza modifiche) e la parte php di resizer.php vedo di darci un'occhiata.

  5. #5
    Grazie 1000... questo č quello che mi viene stampato a video:
    Warning: imagejpeg() [function.imagejpeg]: Unable to open 'repository/public%2Fvillages%2F10%2F2006%2F2.jpg§191_144' for writing: Permission denied in /home/www/5bdf89763527da301a723c15f36dcee6/web/v2/resizer.php on line 78

    Warning: imagecreatefromjpeg(repository/public%2Fvillages%2F10%2F2006%2F2.jpg§191_144) [function.imagecreatefromjpeg]: failed to open stream: No such file or directory in /home/www/5bdf89763527da301a723c15f36dcee6/web/v2/resizer.php on line 22

    Warning: imagejpeg(): supplied argument is not a valid Image resource in /home/www/5bdf89763527da301a723c15f36dcee6/web/v2/resizer.php on line 23

    Warning: imagedestroy(): supplied argument is not a valid Image resource in /home/www/5bdf89763527da301a723c15f36dcee6/web/v2/resizer.php on line 24


    e questo qui sotto č il file che fa il resize:
    Codice PHP:
    <?php
    require("globals.inc");
    header ("Content-type: image/jpeg");

    if(!
    file_exists($img_path))
    {
        
    $im imagecreatetruecolor($w$h);
        
    $bg imagecolorallocate($im255255255); 
        
    $text_color imagecolorallocate($im000);
        
    imagestring($im22010,  "Non disponibile"$bg);
        
    imagejpeg($im""100);
        
    imagedestroy($im);    
    }
    else
    {
        
    $cachedpath getCachedPath($img_path$w$h);
        if(!
    file_exists($cachedpath))
        {
            
    ResizeImage($img_path$w$htrue);
        }
        
        
    $source ImageCreateFromJPEG($cachedpath);
        
    imagejpeg($source""80);
        
    imagedestroy($source);
    }
        
    //ResizeImage("public/temp.jpg", 20, 20, true);


    function ResizeImage($filename$th_width$th_height$forcefill)
    {    
        global 
    $_repository;
        list(
    $width$height) = getimagesize($filename);

       if(
    substr($filenamestrlen($filename) - 33) == "jpg")
            
    $source ImageCreateFromJPEG($filename);
       
       if(
    substr($filenamestrlen($filename) - 33) == "gif")
            
    $source ImageCreateFromGIF($filename);
       
       if(
    substr($filenamestrlen($filename) - 33) == "png")
            
    $source ImageCreateFromPNG($filename);
        
       if(
    $width $th_width || $height $th_height)
       {
         
    $a $th_width/$th_height;
         
    $b $width/$height;

         if((
    $a $b)^$forcefill)
         {
             
    $src_rect_width  $a $height;
             
    $src_rect_height $height;
             if(!
    $forcefill)
             {
               
    $src_rect_width $width;
               
    $th_width $th_height/$height*$width;
             }
         }
         else
         {
             
    $src_rect_height $width/$a;
             
    $src_rect_width  $width;
             if(!
    $forcefill)
             {
               
    $src_rect_height $height;
               
    $th_height $th_width/$width*$height;
             }
         }

         
    $src_rect_xoffset = ($width $src_rect_width)/2*intval($forcefill);
         
    $src_rect_yoffset = ($height $src_rect_height)/2*intval($forcefill);

         
    $thumb  imagecreatetruecolor($th_width$th_height);
         
         
         
           
    imagecopyresampled($thumb$source00$src_rect_xoffset$src_rect_yoffset$th_width$th_height$src_rect_width$src_rect_height);
           
    $cachedpath getCachedPath($filename$th_width$th_height);
           
    imagejpeg($thumb$cachedpath80);
           
    imagedestroy($thumb);
       }
       else
       {
           
    imagejpeg$source,""80);
           
    imagedestroy($source);
       }
    }

    function 
    getCachedPath($filename$w$h)
    {
        global 
    $_repository
        
    $encodedname urlencode($filename) . "§" $w "_" $h;
        
    $cachedpath $_repository "/" $encodedname;

        return 
    $cachedpath;
    }
      
    ?>
    Non so se la soluzione al problema puo essere nascosta nei warning... io ho pensato subito ad una questione di permessi e basta... sono molto confuso dal fatto che alcune foto funzionano e altre no... bhoo

  6. #6
    il motivo per il quale ti da l'errore č abbastanza semplice: quando va a scrivere (probabilmente per avere una cache) il percorso di destinazione non č accessibile in scrittura da apache (e quindi da php)

    la cartella che hai rimosso e sostituito con blablabla e che contiene il file di destinazione di imagejpeg va impostata con i permessi 777 ... se mancano cartelle in quel percorso che lui prova ad usare creale e all'ultima dai i permessi corretti
    The fastest Redis alternative ... cachegrand! https://github.com/danielealbano/cachegrand

  7. #7
    Grazie 1000 daniele, inizio a venirne fuori...
    in effetti io controllavo i permessi di un altra catella... infatti settando come mi hai detto su 777 direi che ho risolto!

    Ho solo altri 2 piccoli inconvenienti:
    Ho preparato un pagina che mi richiama tutte le foto, e effettivamente grazie a te ora le vedo quasi tutte perfettamente e ridimenzionate, tranne alcune(4 o 5 foto) che invece non mi vengono fuori

    Ho richiamato nel browser il file resizer.php e gli ho passato l'url della foto e mi viene fuori questo:


    Fatal error: Allowed memory size of 50331648 bytes exhausted (tried to allocate 15552 bytes) in /home/www/5bdf89763527da301a723c15f36dcee6/web/v2/resizer.php on line 35


    posso in qualche modo rimediare?

  8. #8
    no

    le immagini sono troppo grandi
    The fastest Redis alternative ... cachegrand! https://github.com/danielealbano/cachegrand

  9. #9
    Troppo grandi? ma dove č specificato il limite???
    Grazie ancora per l'aiuto daniele!

  10. #10
    il limite č per la memoria non per la dimensione dell'immagine in se!

    Attualmente il liimte di memoria riportato č 48mb, quasi 50, perō non basta il che mi fa pensare che hai un immagine MASTODONTICA!!!

    ti sconsiglio di utilizzare php per trattare immagini cosi grandi, le GD rendono parecchio male!

    Se hai la possibilitā, usa nconvert per linux ti basta buttare sul server l'eseguibile, in una cartella non accessibile via web e dargli i permessi di esecuzione, ergo 775

    dopo di che lo richiami via exec o system

    http://pagesperso-orange.fr/pierre.g..._nconvert.html
    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.