Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: Thumbnail generator

Kirbo [06.04.2005 01:51:55]

#

Osaako kukaan sanoo, et mikä tässä koodissa voi olla, kun MBNET:issä tää ei toimi, mut muualla kyllä.
MBNET:issä tulee virhe ilmotus:

Warning: glob(): SAFE MODE Restriction in effect. The script whose uid is 105559 is not allowed to access ./pienennetyt/3376064.jpg owned by uid 39653 in /mbnet/k/kirbo/thumb.php on line 91


Kaikki chmod:aukset on oikein, ja koodi tekee Thumbnailit, mut pistää niiden kuvien CHMOD:iks 0644
eli että niitä ei voi edes kattoo, mutta poistaan/nimeen kyllä pystyy...

Edes tolla koodilla ei oo oikeuksia vaihtaa sen CHMOD:auksia..Jos joku tohon ratkasun keksii, ni oon HYVIN kiitollinen

Niin siis kummanki kansion CHMOD on 0777, alkuperäisten kuvien CHMOD on 0777, mut pienennetyt kuvat 0644

Tai ei toi virhe oikeestaan tuu tässä koodissa, vaan siinä mikä yrittää lukee niitä kuvia tuolta "pienennetyt/" kansiosta...Siinä koodissa ei oo mitään vikaa, mut tää tekee niille Thumbnaileille vaan tyhmät CHMOD:it

$imagedir=./alkuperaset/;
$thumbdir=./pienennetyt/;
$thumb_maxx=100;
$thumb_maxy=75;





function pieni($file) {
    global    $imagedir,$thumbdir,$thumb_maxx,$thumb_maxy;
    // luetaan kuvan tiedot
    $attr=getimagesize($imagedir.$file);
    $origx=$attr[0];
    $origy=$attr[1];





    // tarkistetaan kuvan orientaatio, eli onko se pystyssä vai vaakatasossa. Sen mukaan skaalataan kuva annetun kokoiseksi säilyttäen alkuperäinen kuvasuhde
    if ($origx>$origy) {
		if ($origx > $thumb_maxx) {
	        $sizex=$thumb_maxx;
        	$sizey=($origy/$origx)*$thumb_maxx;
		}else{
	        $sizex=$origx;
    	    $sizey=($origy/$origx)*$origx;
		}
    } else {
		if ($origy > $thumb_maxy) {
	        $sizex=($origx/$origy)*$thumb_maxy;
	        $sizey=$thumb_maxy;
		}else{
	        $sizex=($origx/$origy)*$origy;
	        $sizey=$origy;
		}

    }

    // kuvaoriginaalin formaatista riippuen luodaan kuvan tarvitsema resurssi käyttäen asiaankuuluvaa funktiota
    switch ($attr[2]) {
        case 1:
        $orig=imagecreatefromgif($imagedir.$file);
        break;
        case 2:
        $orig=imagecreatefromjpeg($imagedir.$file);
        break;
        case 3:
        $orig=imagecreatefrompng($imagedir.$file);
        break;
        default:
        return false;
        break;
    }

    // ja sikäli kun originaalikuva meiltä löytyy, niin voidaan duunailla pikkukuva siitä
    if ($orig) {
        $pikku=imagecreatetruecolor($sizex,$sizey);
        imagecopyresampled($pikku,$orig,0,0,0,0,$sizex,$sizey,$origx,$origy);
        $status=imagejpeg($pikku,$thumbdir.$file,75);
		@chmod($thumbdir.$file, 0777);
        imagedestroy($orig);
        imagedestroy($pikku);
    }
}

// käsitellään koko annettu hakemisto, ei alihakemistoja kuitenkaan
if ($dir = opendir($imagedir)) {
  // luetaan hakemistoa niin kauan kun sieltä tiedostoja löytyy
  while (false !== ($file = readdir($dir))) {
    // . ja .. jätetään huomioimatta
    if ($file!='.' && $file!='..') {

    // muista tiedostonimistä tarkistetaan ovatko .jpg .gif tai .png päätteisiä
    if (preg_match("/\.(jpg|gif|png|JPG|GIF|PNG)$/",$file)) {
        // tarkistetaan onko kuvalle olemassa jo thumbnail. Mikäli ei, niin luodaan sellainen käyttämällä koodin alussa määriteltyä funktiota kutista();


		if (file_exists($thumbdir.$file)) {
			$mtime = filemtime($imagedir.$file);
			$mthumb = filemtime($thumbdir.$file);

			if ($mtime > $mthumb) {
				@unlink($thumbdir.$file);
				kutista($file);
				@chmod($thumbdir.$file, 0777);
			}
		}

        if (!file_exists($thumbdir.$file)) pieni($file); chmod($thumbdir.$file, 0777);

		if (file_exists($thumbdir.$file)) {
			if (!file_exists($imagedir.$file)) {
				@chmod($thumbdir.$file, 0777);
				@unlink($thumbdir.$file);
			}
		}

    }
    }
  }
  closedir($dir);
}

if ($dir = opendir($thumbdir)) {
  // luetaan hakemistoa niin kauan kun sieltä tiedostoja löytyy
  while (false !== ($file = readdir($dir))) {
    // . ja .. jätetään huomioimatta
    if ($file!='.' && $file!='..') {

    // muista tiedostonimistä tarkistetaan ovatko .jpg .gif tai .png päätteisiä


    if (preg_match("/\.(jpg|gif|png|JPG|GIF|PNG)$/",$file)) {
        // tarkistetaan onko Thumbnailia kuvasta, jota ei enää alkuperäisessä kansiossa ole, mikäli niin, poistetaan thumbnail.


		if (file_exists($thumbdir.$file)) {
			if (!file_exists($imagedir.$file)) {
				@chmod($thumbdir.$file, 0777);
				@unlink($thumbdir.$file);

			}
		}
    }
    }
  }
  closedir($dir);
}

Lazu [06.04.2005 08:13:18]

#

Aseta pienennetyt -hakemiston chmodiksi sen jonka haluat thumbnailien saavan. Tämä muistaakseni toimi.

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta