Hallo zusammen,
ich sitz hier vor einem kleinen / großen Problem, dass mich höchstwahrscheinlich bald in den Wahnsinn treiben wird
Ich hab hier ein Bilderuploadscript (dürfte glaub ich von hier stammen), das soweit ohne Probleme funktioniert. Nun versuche ich seit ein paar Stunden, das ganze so zu erweitern, dass von den hochgeladenen Bildern noch ein Thumbnail erstellt wird - ohne Erfolg.
Nachfolgend der Code - vielleicht kann mir jemand weiterhelfen.
ich sitz hier vor einem kleinen / großen Problem, dass mich höchstwahrscheinlich bald in den Wahnsinn treiben wird
Ich hab hier ein Bilderuploadscript (dürfte glaub ich von hier stammen), das soweit ohne Probleme funktioniert. Nun versuche ich seit ein paar Stunden, das ganze so zu erweitern, dass von den hochgeladenen Bildern noch ein Thumbnail erstellt wird - ohne Erfolg.
Nachfolgend der Code - vielleicht kann mir jemand weiterhelfen.
PHP:
<?php
session_start();
include_once('sessionhelpers.inc.php');
include('db.php');
// Prüfen ob User eingeloggt ist
if ( !logged_in() ) {
echo <<<END
// Ausgabe Fehlermeldung: Zugriff verweigert
<div style="background-color:#FF9999; height:30px">Zugriff verweigert! Sie sind nicht eingeloggt!</div>
END;
}
// Falls User nicht eingeloggt, Laden der Seite abbrechen
if ( !logged_in() ) {
exit();
}
?>
<?php
function watermark($image, $watermark, $save_as, $position=5, $transparency=20, $t_x=0, $t_y=0) {
// Erlaubte Dateiformate: PNG und JPEG
if($position < 1 || $position > 9)
return FALSE;
if(!file_exists($image) || !file_exists($watermark))
return FALSE;
$infos_img = getimagesize($image);
$infos_wat = getimagesize($watermark);
if(!in_array($infos_img[2], array(2,3)) || !in_array($infos_wat[2], array(2,3)))
return FALSE;
if($infos_img[0]<$infos_wat[0] || $infos_img[1]<$infos_wat[1])
return FALSE;
if($infos_wat[0]<$t_x || $infos_wat[1]<$t_y)
return FALSE;
$transparency = 100 - $transparency;
if($transpareny < 0 || $transpareny > 100)
return FALSE;
// Position x
switch (($position-1)%3) {
case 0:
$pos_x = 0;
break;
case 1:
$pos_x = round(($infos_img[0]-$infos_wat[0])/2, 0);
break;
case 2:
$pos_x = $infos_img[0]-$infos_wat[0];
break;
}
// Position y
switch (floor(($position-1)/3)) {
case 0:
$pos_y = 0;
break;
case 1:
$pos_y = round(($infos_img[1]-$infos_wat[1])/2, 0);
break;
case 2:
$pos_y = $infos_img[1]-$infos_wat[1];
break;
}
// Wasserzeichen
if($infos_img[2] == 2)
$img_image = imagecreatefromjpeg($image);
if($infos_img[2] == 3)
$img_image = imagecreatefrompng($image);
if($infos_wat[2] == 2)
$img_watermark = imagecreatefromjpeg($watermark);
if($infos_wat[2] == 3)
$img_watermark = imagecreatefrompng($watermark);
imagealphablending($img_image, TRUE);
imagealphablending($img_watermark, TRUE);
imagecolortransparent($img_watermark, imagecolorat($img_watermark, $t_x, $t_y));
imagecopymerge($img_image, $img_watermark, $pos_x, $pos_y, 0, 0, $infos_wat[0], $infos_wat[1], $transparency);
if(strtolower(substr($save_as, -3)) == "png") {
if(imagepng($img_image, $save_as))
return TRUE;
else
return FALSE;
} else {
if(imagejpeg($img_image, $save_as))
return TRUE;
else
return FALSE;
}
return FALSE;
}
// Prüfen des Array $_FILES
if (isset($_FILES["datei"]))
{
foreach ($_FILES["datei"] as $ids=>$dateieninfos)
{
if ($ids == "name")
{
foreach ($dateieninfos as $id=>$info)
{
// Upload-Status
if ($_FILES["datei"]["error"][$id] == UPLOAD_ERR_OK)
{
// Muster zur Überprüfung der im Dateinamen
// enthaltenen Zeichen (Optional)
$regExp = "/^[a-z_]([a-z0-9_-]*\.?[a-z0-9_-])*\.[a-z]{3,4}$/i";
// Dateiname und Dateigrösse
if (preg_match($regExp,$_FILES["datei"]["name"][$id]) && $_FILES["datei"]["size"][$id] > 0 && $_FILES["datei"]["size"][ $id] < 1000000)
{
// Temporäre Datei in das Zielverzeichnis des Servers verschieben.
$uid = md5(uniqid(rand(), true));
$dir = '../newsbilder';
move_uploaded_file($_FILES["datei"]["tmp_name"][$id],"../newsbilder/". $uid .$_FILES["datei"]["name"][$id]);
//Variablendefinition
$newsauthor = $_POST['newsauthor'];
$newstitel = $_POST['newstitel'];
$newsid = $_POST['newsid'];
$newstimestamp = $_POST['newstimestamp'];
$newssubline = $_POST['newssubline'];
$newstext = $_POST['newstext'];
$filename = $uid . $_FILES['datei']['name'][$id];
print"<p>Upload erfolgreich!</p>$filename<br><img src=$dir/$filename width=100 height=100>";
if(watermark("$dir/$filename", "$dir/watermark.png", "$dir/$filename", 5))
echo "<img src=\"$dir/$filename\">";
//Verbindungsaufbau zur Datenbank
$link = mysql_connect($dbhost,$dbuser,$dbpass);
mysql_select_db($dbname,$link);
//Eintrag des Dateinamens in die Datenbank
$query="INSERT INTO `".$newsbilderupload."` (newstitel,bilddatei,newsauthor,newsid) values ('".$newstitel."','".$filename."','".$newsauthor."','".$newsid."')";
mysql_query($query) or die (mysql_error());
mysql_close();
// Meldung ob erfolgreich oder nicht
echo "<b>Datei " . $_FILES["datei"]["name"][$id] . "</b> - Erfolgreich angelegt!<br>\n";
}
else
{
echo "<b>Fehler bei " . $_FILES["datei"]["name"][$id] . "</b> - Im Dateinamen oder Dateigrössen Limit!<br>\n";
}
}
else
{
echo "<b>Fehler bei " . $_FILES["datei"]["name"][$id] . "</b> - Während der Übertragung aufgetreten!<br>\n";
}
}
}
}
else
{
echo "<b>Warnung:</b> - Dateiupload fehlgeschlagen!";
}
?>