Bild in bestimmter größe Uploaden

lifehunter

Erfahrenes Mitglied
Mein Script sieht so aus:
PHP:
<? if($hochladen){
$result=mysql_query("SELECT `pic` FROM `profil` WHERE `ID`='".$_SESSION['ID']."'");
if(mysql_num_rows($result)>0){
$result=mysql_query("SELECT `filename` FROM `upic` WHERE `ID`='".$_SESSION['ID']."'");
$filename=mysql_result($result, 'filename');
$pfad_bilder = 'user/userpic/';
unlink($pfad_bilder.$filename);
mysql_query("DELETE FROM `upic` WHERE `ID`='".$_SESSION['ID']."'");}

$tempname = $_FILES['file']['tmp_name'];
$name = $_FILES['file']['name'];
$type = $_FILES['file']['type'];
$size = $_FILES['file']['size'];
if ($type != "image/gif" && $type != "image/pjpeg" && $type != "image/jpeg" && $type != "image/png" && $type != "image/bmp"){
    $err[] = "nur gif und jpeg Dateien dürfen hochgeladen werden.";
	}
if($size > "80000") {
    $err[] = "Die Datei welche du hochladen willst, ist zu gross!<br>Maximale Dateigrosse beträgt 80 KB!";
	}
if(empty($err)) {
    copy("$tempname", "user/userpic/$name");
    $meldung="Die Datei $name wurde erfolgreich hochgeladen!<br>";
	mysql_query("INSERT INTO `upic` (`filename`, `ID`) values ('".$name."', '".$_SESSION['ID']."')");
	mysql_query("UPDATE `profil` SET `pic`='1' WHERE `ID`='".$_SESSION['ID']."'");}
else {
    foreach($err as $error)
    $meldung="$error<br>";
	}
unset($hochladen);
}

if(!$hochladen){
echo $meldung; ?><b>Userbild hochalden</b>
<form enctype="multipart/form-data" action="<? echo $PHP_SELF."?userprofil&upload"; ?>" method="post"> 
<input type="hidden" name="hochladen" value="1">
<input type="file" name="file"><br>
<font size="-2">(max. 80kb nur JPEG und GIF!)</font><p>
<input type="submit" value="hochladen"> 
</form> 
<? } ?>

Wie mach ich des jetzt das falls das Bild zu groß vom Format her ist, dass das Format geändert wird bevor es hochgeladen wird?
Ich wäre mal wieder sehr dankbar für eure Hilfe!

MfG
 
Vor dem Hochladen selbst kannst du es nicht formatieren, schau dir mal diese Funktion an: [PHPF]imagecopyresampled[/PHPF]
 
Du musst doch nur das 2. Beispiel übernehmen und geringfügig anpassen:
PHP:
// The file
$filename = $_FILES['blabla']['temp'];

// Set a maximum height and width
$width = 1024;
$height = 1024;

// Get new dimensions
list($width_orig, $height_orig) = getimagesize($filename);

if ($width && ($width_orig < $height_orig)) {
   $width = ($height / $height_orig) * $width_orig;
} else {
   $height = ($width / $width_orig) * $height_orig;
}

// Resample
$image_p = imagecreatetruecolor($width, $height);
$image = imagecreatefromjpeg($filename);
imagecopyresampled($image_p, $image, 0, 0, 0, 0, $width, $height, $width_orig, $height_orig);

// Output
imagejpeg($image_p, "neuer_name.jpg", 100);
 
okay ich wollte das eben mal programmieren aber ich weiß doch net genau wie ich das einbinden soll, kann mir da nochmal gehoffen werden?
 
Ich hab des so geschrieben, aber es klappt net:(
Kann mir da jemand sagen wie ich das umschreiben muss? Also es wird kein Bild hochgeladen:
PHP:
<? if($hochladen){
$result=mysql_query("SELECT `pic` FROM `profil` WHERE `ID`='".$_SESSION['ID']."'");
if(mysql_num_rows($result)>0){
$result=mysql_query("SELECT `filename` FROM `upic` WHERE `ID`='".$_SESSION['ID']."'");
$filename=mysql_result($result, 'filename');
$pfad_bilder = 'user/userpic/';
unlink($pfad_bilder.$filename);
mysql_query("DELETE FROM `upic` WHERE `ID`='".$_SESSION['ID']."'");}

$tempname = $_FILES['file']['tmp_name'];
$tempfile = $_FILES['blabla']['temp'];
$name = $_FILES['file']['name'];
$type = $_FILES['file']['type'];
$size = $_FILES['file']['size'];

// Maxi Größe
$width = 200;
$height = 200;

if ($type != "image/gif" && $type != "image/pjpeg" && $type != "image/jpeg" && $type != "image/bmp"){
    $err[] = "nur gif und jpeg Dateien dürfen hochgeladen werden.";
	}
if($size > "80000") {
    $err[] = "Die Datei welche du hochladen willst, ist zu gross!<br>Maximale Dateigrosse beträgt 80 KB!";
	}
$resultpic=mysql_query("SELECT `filename` FROM `upic` WHERE `filename`='".$name."'");
if(mysql_num_rows($resultpic)>0){
	$name=$_SESSION['Nick'];
	}
if(empty($err)) {
	// Get new dimensions
	list($width_orig, $height_orig) = getimagesize($filename);

	if ($width && ($width_orig < $height_orig)) {
   	$width = ($height / $height_orig) * $width_orig;
	} else {
	$height = ($width / $width_orig) * $height_orig;
	}
	// Resample
	$image_p = imagecreatetruecolor($width, $height);
	$image = imagecreatefromjpeg($filename);
	imagecopyresampled($image_p, $image, 0, 0, 0, 0, $width, $height, $width_orig, $height_orig);

	// Output
	imagejpeg($image_p, "user/userpic/$name", 100); 

    copy("$image_p", "user/userpic/$name");
    $meldung="Die Datei $name wurde erfolgreich hochgeladen!<br>";
	mysql_query("INSERT INTO `upic` (`filename`, `ID`) values ('".$name."', '".$_SESSION['ID']."')");
	mysql_query("UPDATE `profil` SET `pic`='2' WHERE `ID`='".$_SESSION['ID']."'");}
else {
    foreach($err as $error)
    $meldung="$error<br>";
	}
unset($hochladen);
}

if(!$hochladen){
echo $meldung; ?><b>Userbild hochalden</b>
<form enctype="multipart/form-data" action="<? echo $PHP_SELF."?userprofil&upload"; ?>" method="post"> 
<input type="hidden" name="hochladen" value="1">
<input type="file" name="file"><br>
<font size="-2">(max. 80kb nur JPEG und GIF!)</font><p>
<input type="submit" value="hochladen"> 
</form> 
<? } ?>
 
Zurück