Seite 1 von 1

Bilder beim Upload automatisch skalieren

Verfasst: 04.01.2007 11:41
von dj piet
Hallo, ich haeng hier grad an einer Galerie für meine Homepage, da können die User selbst ein paar Bilder hochladen. Das Problem was ich nun habe ist, dass zwar Thumbs erstellt werden die Bilder ansich aber in der Original Größe bleiben, was nicht gerade zuträglich ist.

ich kenne mich nun leider nicht so mit php aus, ich hoffe aber das ich die richtige Dateil rausgesucht habe wo der entsprechende code rein muss.

Evtl. kann mir ja hier jemand behilflich sein...

Code: Alles auswählen

<?php
	ob_start();
	$sname = " - ".$lang_main['BILDEREINSENDEN'];
	if($logged==1) {
	
		$galpfad = "uploads/galerie/";
	$user = getusernamebyid($_COOKIE["c_user_name"]);

if($_REQUEST['dowhat']!="uploadform"){
	$tpl =& new Template("userbildupload_start.htm");
	$tpl->Insert("{user}", $user);
	$tpl->Insert("{hinweis}", $lang_main['BILDEREINSENDENHINWEIS']);
	$tpl->Insert("{fragewieviele}", $lang_main['BILDEREINSENDFRAGE']);
	$tpl->Insert("{textabsenden}", $lang_main['BILDEREINSENWEITER']);
	$bildereinsenden = $tpl->VOut();
	
	$tpl =& new Template("mainlayout/mainbox.htm");
	$tpl->Insert("{titel}", $lang_main['BILDEREINSENDEN']);
	$tpl->Insert("{inhalt}", $bildereinsenden);
	$tpl->Insert("{theme}", $theme);
	$tpl->POut();
}

if($_REQUEST['upload']!=""){
	
	if($_REQUEST['upload']==1){
		
		
		
		if($_REQUEST['categ']=="0"){
			if($_REQUEST['catname']==""){
				$catname = "Bilder".date("d.m.y-H.i");
			}
			
			if($_REQUEST['catname']!="")
			{
				$catname = $_REQUEST['catname'];
			}
			
			
			
			
		}
		else
		{
			$categ=$categ;
		}
		
		
		
		function upload($_FILES)
		{
			global $sql_prefix,$galpfad,$gdversion,$compression,$thumb_smallw,$thumb_smallh,$thumb_middlew,$thumb_middleh;
			for($i=0;$i<count($_FILES[files][tmp_name]);$i++)
			{
				$size=$_FILES[files][size][$i];
				$name=$_FILES[files][name][$i];
				$temp=$_FILES[files][tmp_name][$i];
				$type=substr($_FILES[files][type][$i], 0, 5);
				
				if($size > 0  and $type=="image")
				{
					include("includes/config.php") ;
					
					
					
					$fupload_name=strtolower($_FILES[files][name][$i]);
					$fupload_name=str_replace(" ","", $fupload_name);
					
					
					if(file_exists("$galpfad".$fupload_name)){
						$nname=date("s");
						$ndat=explode(".",$fupload_name);
						$fupload_name=$ndat[0].$nname.".".$ndat[1];}
					
					
					
					if($_FILES[files][type][$i]=="image/pjpeg" || $_FILES[files][type][$i]=="image/jpeg" || $_FILES[files][type][$i]=="image/x-png" || $_FILES[files][type][$i]=="image/png" || $_FILES[files][type][$i]=="image/gif"){
						@move_uploaded_file($_FILES[files][tmp_name][$i], $galpfad . $fupload_name);
						@chmod($galpfad . $fupload_name, 0777);
						echo "<br>Bildname: <b>".$fupload_name."</b> ...Upload erfolgreich ! $msg <hr noshade size=1>";
						
						if($_POST[bild_name][$i]==""){$bildname=substr(addslashes($name), 0, -4);}
						if($_POST[bild_name][$i]!=""){$bildname=$_POST[bild_name][$i];}
						$query="insert into " . $sql_prefix . "_galerie_bilder (autor_email,name,kat,beschreibung,bild_name,status) values('".$_POST[autor_email][$i]."','$fupload_name','".mysql_escape_string($_POST['galerie'])."','".mysql_escape_string($_REQUEST['text'][$i])."','$bildname','0')";
						$result=mysql_query($query);
					}
					if($_FILES[files][type][$i]!="image/pjpeg" && $_FILES[files][type][$i]!="image/jpeg" && $_FILES[files][type][$i]!="image/x-png" && $_FILES[files][type][$i]!="image/png" && $_FILES[files][type][$i]!="image/gif"){
						echo $lang_main['BILDUPLOADFEHLER1'];
					}
				}
				else
				{
					echo $lang_main['BILDUPLOADFEHLER2'];
				}
			}
		}
		
		
		
		if($_REQUEST['send']=="1")
		{
			
			$query="SELECT * FROM " . $sql_prefix . "_galerie_kat where id='".$_REQUEST["galerie"]."'";
			$result=mysql_query($query);
			$row = mysql_fetch_array($result);
			
@mail("$emailwebmaster","Ein User hat Bilder hochgeladen", "Hallo Webmaster,\nEs wurden von ".getusernamebyid($_COOKIE["c_user_name"])." (".getuseremailbyid($_COOKIE["c_user_name"]).") Bilder hochgeladen (".$row[name].").","From: $emailwebmaster\nReply-To: $emailwebmaster\nX-Mailer: PHP/" . phpversion());
			
			upload($_FILES);
			
		}
		
	}
}
if($_REQUEST['dowhat']=="uploadform"){
	for ($f=1; $f<$_REQUEST['anz']+1; $f++) {
		$nr = $f;
		$umail = getuseremailbyid($_COOKIE['c_user_name']);
		$tpl =& new Template("userbildupload_dateifeld.htm");
		$tpl->Insert("{textquelle}", $lang_main['TEXTQUELLE']);
		$tpl->Insert("{nr}", $nr);
		$tpl->Insert("{beschreibung}", $lang_main['TEXTBESCHREIBUNG']);
		$tpl->Insert("{umail}", $umail);
		$vals .= $tpl->VOut();
	}
	
	$query="select * from " . $sql_prefix . "_galerie_kat";
	$result=mysql_query($query);
	$number=mysql_numrows($result);
	$i=0;
	
	while($i < $number) {
		$row=mysql_fetch_array($result);
		$option .= "<option value=\"".$row[id]."\">".$row[name]."</option>";
		$i++; }
		$anz = $anz;
		$tpl =& new Template("userbildupload_galauswahl.htm");
		$tpl->Insert("{textgalerie}", $lang_main['TEXTGALERIE']);
		$tpl->Insert("{keinegalerie}", $lang_js['KEINEGALERIE']);
		$tpl->Insert("{anz}", $anz);
		$tpl->Insert("{wahl}",$lang_main['AUSWAHL']);
		$tpl->Insert("{textsenden}",$lang_main['BILDEREINSENDEN']);
		$tpl->Insert("{option}", $option);
		$valbilder = $tpl->VOut();
		
		$tpl =& new Template("mainlayout/mainbox.htm");
		$tpl->Insert("{titel}", $lang_main['BILDEREINSENDEN']);
		$tpl->Insert("{inhalt}", $valbilder);
		$tpl->Insert("{felder}", $vals);
		$tpl->Insert("{theme}", $theme);
		$tpl->POut();
}

	} else {
	header("location:index.php?templateid=error&code=1");
	exit();
	}
	$OUT = ob_get_contents();
	ob_end_clean();
?>

Verfasst: 04.01.2007 11:49
von Nosferatu_v
ist das ein fertiges programm ? also die Gallerie?
bei den Gallerien gibts normalerweise eine einstellung wo du sagen kansnt wie groß die thumbs sein sollen bzw bei selbstgeladen gibts meistens auch nen auto thumbnailer wo du sagen kannst alle auf 200 px oder so

Verfasst: 04.01.2007 11:51
von dj piet
ja die Thumbs kann ich einstellen aber ich möchte die angezeigten originalbilder skaliert haben. wenn ich nen 1600x1200 pixel bild hochlade soll es dann eben nur mit 600x480 angezeigt werden bzw. auch nur in dieser größe auf dem Server landen.

kennt ihr da ne möglichkeit?

Verfasst: 04.01.2007 11:53
von Nosferatu_v
selbst das sollte in deinem programm schon enthalten sein

was ist es denn für ein pogramm ?

Verfasst: 04.01.2007 11:58
von dj piet
Wenns drin wäre würd ich ja nicht fragen ...

es handelt sich um SAD 123page.

Ist so ganz gut für nicht programmierer, ich benutze es um artikel etc. zu veröffentlichen und weil man das layout relativ einfach anpassen kann.

Verfasst: 05.01.2007 06:58
von Nosferatu_v
das ist ja ein kostenpflichtes Programm ??? ist das richtig?

warum hast du dir kein Freeware programm genommen, wie PHPKIT, PHPNuke; phpbb + cms, Typo3 ....

SAD 123page solltest du am besten in einem SAD 123page forum nachfragen da ich dir da nicht so weiter helfen kann weil ich das programm dazukennen müsste und schaun müsste wie alles lauft und so und selbst genug mit meinem programm arbeit habe.

aber in einem SAD 123page sollte dir sicher geholfen werden. würde dir aber trozdem raten auf ein einderes cms umzusteigen da gibts meisten dutzende mods für alles