Bilder vom Server anzeigen

Tsa

Mitglied
Hey Leute,
ich habe ein kleines Problem was mein Upload/anzeigen von Bilder angeht!
Ich speichere die Bilder nach dem Upload in 2 verzeichnisse. Bilder und Thumbnails.
Dann versuch ich sie anzeigen zu lassen und habe mir hierfür auch eine Klasse geschrieben. Diese Klasse verhält sich allerdings ein wenig komisch!
Rufe ich die Klasse aus der gleichen PHP datei auf, bzw. die nötige Funktion zum anzeigen des Bildes, so funktionierts. Erzeug ich ein Objekt der Klasse in einer anderen Datei und versuche DANN die Funktion aufzurufen, so zeigt er nichts an! Ich versuch schon seit Stunden eine Lösung zu finden, aber ich komme nicht weiter :(

Hier der Relevante Code:
PHP:
<?php
	class Verkleinern
	{
		function Verkleinern()
		{}
		function verkleinernProportional($id)
		{	
			$filename= "Bilder/$id.jpg";
			$image = imagecreatefromjpeg($filename);
			$size = getimagesize($filename);
			$maxHeight = 200;
			$maxWidth = 400;
		
			$width_old = $size[0];
			$height_old = $size[1];
			// Get new dimensions
	
			$ratio_orig = $width_old/$height_old;
	
			if ($maxWidth/$maxHeight > $ratio_orig)
			{
	   			$maxWidth = $maxHeight*$ratio_orig;
			}
			else
			{
	   			$maxHeight = $maxWidth/$ratio_orig;
			}
			$newimage = imagecreatetruecolor($maxWidth, $maxHeight);
			imagecopyresampled($newimage, $image, 0, 0, 0, 0, $maxWidth, $maxHeight, $width_old, $height_old);
	 			imagejpeg($newimage,"Thumbnails/$id.jpg");
			}
		function speichereBild($bild)
		{
		
		}
		function zeigeBild($id)
		{
			header('Content-type: image/jpeg');
			$filename = "Bilder/$id.jpg";
			$image = imagecreatefromjpeg($filename);
			imagejpeg($image);	
		}
	
		function zeigeThumbnail($id)
		{
			header('Content-type: image/jpeg');
			$filename = "Thumbnails/$id.jpg";
			$image = imagecreatefromjpeg($filename);
			imagejpeg($image);
		}
	}
	//Diese Ausgabe funktioniert! 
	$dies = new Verkleinern();
	$dies->zeigeBild("Atom13-11");
?>

PHP:
if(isset($_FILES['form_data']))
	{
		rename($tmp_name,$_SERVER['DOCUMENT_ROOT']."/Test/Bilder/$dateiname.jpg");
		require_once("Verkleinern.class.php");
		//Diese Ausgabe funktioniert nicht! 
               $verkleinern = new Verkleinern();
		$verkleinern->verkleinernProportional($dateiname);
	}

Habe natürlich den dateinamen usw. schon überprüft! Das doppelt .jpg kommt daher, dass ich später den primary key aus der datenbank als Namen verwenden will. Sollte ja auch keine Probleme machen (wurde auch anders getestet mit einem Bild ohne doppelt .jpg ;))

Ich hoffe mir kann wer helfen :|
Liebe Grüße,
Jens
 
Definiere doch einfach den korrekten Pfad in der Klasse, oder, übergib ihn an die Klasse.

Wie das geht weist du ja, du wendest das ja schon an:
Code:
rename($tmp_name,$_SERVER['DOCUMENT_ROOT']."/Test/Bilder/$dateiname.jpg");


Hier mal ein Beispiel:

Klasse:
PHP:
class Verkleinern
{
    public function __construct ()
    {
        $this->ImagePath = $_SERVER['DOCUMENT_ROOT'] . '/bilder/';
        $this->ThumbPath = $_SERVER['DOCUMENT_ROOT'] . '/thumbnails/';
    }
    
    public function ZeigeBild ($id)
    {
        $filename = $this->ImagePath . $id . '.jpg';
    }
}
 
Zuletzt bearbeitet:
Hey,
Danke für die Antwort, aber das hatte ich schon versucht!
Also irgendwie macht der nur Probleme, wenn er direkt nach dem hochladen das einbinden soll. Wie ichs mach ist auch net der schönste Weg, ich brauch ja gar kein GD lib! Ich kanns ja einfach mit <img src=""> anzeigen lassen, da die Datei ja dann schon verkleinert ist und so weiter! Aber auch dann funktionierts nur, wenn ichs von einer anderen Datei außer dem upload script anzeigen lasse :| Ok, da ich sowieso nicht direkt nach Upload das Bild anzeigen lassen will, hab ich damit abgeschlossen!

Also mein Tipp für Leute die den Thread lesen: Probierts mal von einer anderen Datei ausführen zu lassen!

Aus Intresse wüsste ich natürlich trotzdem gern worans liegt! Falls wer was weiß, kann er mir gerne ne PN schreiben, ich freue mich endlich zu wissen, was da falsch läuft!

Liebe Grüße,
Jens
 
Zurück