Upload von Bildern

dodge11

Mitglied
Hallo,

ich möchte mit meinem Script den Upload von Bildern ermöglichen. Im Script habe ich 2 Dateiendungen (jpg + gif) festgelegt, die ich zulassen möchte, allerdings funktioniert der Upload von jpg Bildern nicht. Könnt ihr mir da weiterhelfen?

Desweiteren möchte ich gerne die Bildgröße automatisch während des uploads ändern, ist das möglich bzw. wie ist es möglich.

Hier kurz das script:

PHP:
//Namen des Unterverzeichnisses in eine Variable schreiben
$uverz="c:/xampp/htdocs/Web/test/bilder";
//Wenn das Unterverzeichnis noch nicht existiert, dieses anlegen
if(!file_exists($uverz))
{mkdir($uverz,0755);}
//Dateigröße kontrollieren
if($_FILES['neuedatei']['size']>100000)
{$fehler="<br>Die Datei ist zu groß";}
//Zulässige Dateitypen kontrollieren
if(!($_FILES['neuedatei']['type'] == 'image/jpg' OR $_FILES['neuedatei']['type'] == 'image/gif'))
{$fehler.="<br>Der Dateityp ist nicht zulässig.<br>";}
//Datei speichern, wenn kein Fehler vorliegt
if(!$fehler)
{
//Eindeutigen Namen generieren
$name=uniqid("");
//Dateiendung je nach Typ an den Namen anhängen
switch($_FILES['neuedatei']['type'])
{
case 'image/jpg':
$name.=".jpg";
break;
case 'image/gif':
$name.=".gif";
break;
}
//Den Dateinamen um die Pfadangabe erweitern
$name=$uverz."/".$name;
//Die Datei in das Unterverzeichnis kopieren
copy($_FILES['neuedatei']['tmp_name'], $name);
}else { 
echo "<h2><font color=red>".$fehler."</font></h2>";
}

Vielen Dank für eure Hilfe.

gruß

Christian
 
Naja also genau habe ich mir das jetzt nicht angeschaut, da ich in Eile bin. Aber hier ein Auszug wie ich das mit dem verkleinern von jpg / gif gemacht habe:

PHP:
if($hoehe >= 60) {
				$neueHoehe=60;
				$neueBreite= intval($breite*$neueHoehe/$hoehe);
			} elseif($breite >= 60) {
				$neueBreite=60;
				$neueHoehe= intval($hoehe*$neueBreite/$breite);
			} else {
				$neueHoehe = $hoehe;
				$neueBreite = $breite;
			}
			
			if($size[2]==1) {
			 // GIF
			 $altesBild= imagecreatefromgif(FTP_ROOT."httpdocs/tmp/".$this->temp);
			 $neuesBild= imagecreatetruecolor($neueBreite,$neueHoehe);
			 imageCopyResized($neuesBild,$altesBild,0,0,0,0,$neueBreite,$neueHoehe,$breite,$hoehe);
			 imageGIF($neuesBild, FTP_ROOT.$this->udir."/".$filename);
			}
			
			if($size[2]==2) {
			 // JPG
			 $altesBild= ImageCreateFromJPEG(FTP_ROOT."httpdocs/tmp/".$this->temp);
			 $neuesBild= imagecreatetruecolor($neueBreite,$neueHoehe);
			 imageCopyResized($neuesBild,$altesBild,0,0,0,0,$neueBreite,$neueHoehe,$breite,$hoehe);
			 ImageJPEG($neuesBild,FTP_ROOT.$this->udir."/".$filename);
			}
 
Und um die Bilder zu verkleiner baust du dies mit ein.
Nette kleine Funktion
PHP:
function make_jpg($img_src, $img_width, $img_height, $des_src, $quali = 100) {
    $im = imagecreatefromjpeg($img_src);
    list($src_width, $src_height) = getimagesize($img_src);
    if($src_width >= $src_height) {
        $new_image_width = $img_width;
        $new_image_height = $src_height * $img_width / $src_width;
    }
    if($src_width < $src_height) {
        $new_image_height = $img_width;
        $new_image_width = $src_width * $img_height / $src_height;
    }
    $new_image = imagecreatetruecolor($new_image_width, $new_image_height);
    imagecopyresampled($new_image, $im, 0, 0, 0, 0, $new_image_width,$new_image_height, $src_width, $src_height);
    imagejpeg($new_image, $des_src, $quali);
}

Aufgerufen wird dann mit
PHP:
make_jpg("Hochgeladene Datei", 150, 70, "Namederthumbdatei", 80);

Erklärung.
150 ist die neue breite
70 ist die Höhe
80 ist die Qualität. Ich selber arbeite mit 80%. Qualität ist noch sehr gut aber so wird die Grösse der Thumbdatei recht klein gehalten.
 
Hallo,

vielen Dank für eure Antworten.

Bei der funktion make jpg verstehe ich 4 Strings nicht.

$img_src, $img_width, $img_height, $des_src

Wo werden sie definiert bzw. wozu werden sie gebraucht?

gruß
Christian
 
Zurück