ho creato una classe che mi crea delle thumbnail e le va a salvare in una cartella.Le immagini vengono caricate attraverso una form con un campo input type="file"...sapete dirmi perche' quando carico una foto dalla cartella radice,ossia $_SERVER['document_root'],mi crea la thumb e me la salva nella cartella,mentre se carico una foto da un'altra directory,mi salva la thumb nella cartella,ma risulta tutta nera senza nessuna immagine ridimensionata...ciao e grazie in anticipo...

Ecco il codice:

<?php
class FotoManager
{

private static $s_fotoManager;

private $handleimg;
private $original = "";
private $handlethumb;
private $oldoriginal;

public static function getInstance(){

if (FotoManager::$s_fotoManager === NULL)
{
FotoManager::$s_fotoManager = new FotoManager();
}
return FotoManager::$s_fotoManager;
}

private function __construct()
{
}
private function __destruct()
{
}
/*
Apre l'immagine da manipolare
*/
public function openImg($file)
{
$this->original = $file;

if($this->extension($file) == 'jpg' || $this->extension($file) == 'jpeg')
{
$this->handleimg = @imagecreatefromjpeg($file);
}
elseif($this->extension($file) == 'png')
{
$this->handleimg = @imagecreatefrompng($file);
}
else {return -1;}

}
/*
Restituisce la larghezza dell'immagine
*/
public function getWidth()
{
return imageSX($this->handleimg);
}

/*
Ottiene l'altezza dell'immagine
*/
public function getHeight()
{
return imageSY($this->handleimg);
}



/*
Crea una miniatura dell'immagine
*/
public function creaThumb($newWidth, $newHeight)
{
$oldw = $this->getWidth();
$oldh = $this->getHeight();
$this->handlethumb = imagecreatetruecolor($newWidth, $newHeight);

return imagecopyresampled($this->handlethumb, $this->handleimg, 0, 0, 0, 0, $newWidth, $newHeight, $oldw, $oldh);
}



/*
Salva su file la Thumbnail
*/
public function saveThumb($path, $qualityJpg = 100)
{
if($this->extension($this->original) == 'jpg' || $this->extension($this->original) == 'jpeg')
{
return imagejpeg($this->handlethumb, $path, $qualityJpg);
}
elseif($this->extension($this->original) == 'png')
{
return imagepng($this->handlethumb, $path);
}

}

/*
Distrugge le immagine per liberare le risorse
*/
public function closeImg()
{
imagedestroy($this->handleimg);
imagedestroy($this->handlethumb);
}


/*
Estrae l'estensione da un file o un percorso
*/
private function extension($percorso)
{
if(eregi("[\|\\]", $percorso))
{
// da percorso
$nome = $this->nomefile($percorso);

$spezzo = explode(".", $nome);

return strtolower(trim(array_pop($spezzo)));
}
else
{
//da file
$spezzo = explode(".", $percorso);

return strtolower(trim(array_pop($spezzo)));
}
}

/*
Estrae il nome del file da un percorso
*/
private function nomefile($path, $ext = true)
{
$diviso = spliti("[/|\\]", $path);

if($ext)
{
return trim(array_pop($diviso));
}
else
{
$nome = explode(".", trim(array_pop($diviso)));

array_pop($nome);

return trim(implode(".", $nome));
}
}
}
?>




Nel file php lo richiamo in questo modo:

$path='./avatar/'.$nomeFoto;
$foto=FotoManager::getInstance();
$foto->openImg($_FILES['avatarfile']['name']);

$foto->creaThumb(140, 180);
$foto->saveThumb($path, $qualityJpg = 100);
$foto->closeImg();[list]