PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Uploadscript - resize - in 2 Größen und Ordner


ArachnoVobicA
08.07.2009, 23:47:32
Hiho,

ich hab ein Uploadscript mit resize, watermark und Preview Funktion, funktioniert auch alles einwandfrei.

Nun möchte ich das gleiche Script so umschreiben, das es ein hochgeladenes Bild in zwei unterschiedlichen Größen in 2 unterschiedlichen Ordnern speichert.

Hier mal meine 3 grundlegenden PHP Dateien.

index.php
<?php
error_reporting(E_ALL);
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Horst it! Bildupload</title>
<style type="text/css">
body {
font-family:Tahoma;
font-size:12px;
}
</style>
<script language="JavaScript" type="text/javascript">


var ie = !!document.all;

function copy(textfeld){
if (ie) {
textfeld.select();
cbBuffer=textfeld.createTextRange();
cbBuffer.execCommand('Copy');
}
}


</script>

</head>
<body bgcolor="#ffffff" style="background-image: url(http://www.arachnovobica.de/spinnenrad/horst-premium/mainmain.jpg); background-attachment:fixed;" LEFTMARGIN="0" TOPMARGIN="0" MARGINWIDTH="0" MARGINHEIGHT="0">
<?php
include("include/config.inc.php");
$upped = false;
//überprüft sozusagen, ob das formular abgesendet wurde unb bild kleiner ist
if(count($_FILES) > 0)
{
if($_FILES['pic']['size'] > 0 AND $_FILES['pic']['size'] < $config['maxsize'])
{
//überprüfung der dateitypen
if($_FILES['pic']['type'] == "image/jpg" OR $_FILES['pic']['type'] == "image/jpeg" OR $_FILES['pic']['type'] == "image/pjpeg" OR $_FILES['pic']['type'] == "image/gif" OR $_FILES['pic']['type'] == "image/png" OR $_FILES['pic']['type'] == "image/x-png")
{
//timestamp vor name, so kann keine datei überschrieben werden
$filename = time().$_FILES['pic']['name'];
//datei nach verzeichnis verschieben
if(move_uploaded_file($_FILES['pic']['tmp_name'], $config['folder'].$filename))
{
$upped = true;
}
//datei konnte nicht verschoben werden
else
{
echo "<font color='red'>Fehler beim hochladen des Bildes!</font><pre>";
//error switchen
switch($_FILES['pic']['error'])
{
//Fehlernummern wie sie auf php.net setehen
case 1:
echo "Die Datei &uuml;berschreitet die Maximale Dateigr&ouml;&szlig;e die in der php.ini festgelegt wurde!";
break;
case 2:
echo "Die Datei &uuml;berschreitet die Maximale Dateigr&ouml;&szlig;e die im Formular festgelegt wurde!";
break;
case 3:
echo "Die Datei wurde nur teilweise hochgeladen!";
break;
case 4:
echo "Es wurde keine Datei hochgeladen!";
break;
}
echo "</pre>";
}
}
//falscher typ
else
{
echo "<font color='red'>Sie d&uuml;rfen nur jpg, jpeg, gif oder png Bilder hochladen! (".$_FILES['pic']['type'].")</font>";
}

}
//überprüft, ob das bild hochgeladen aber zu groß ist
elseif($_FILES['pic']['size'] > 0 AND $_FILES['pic']['size'] > $config['maxsize'])
{
echo "<font color='red'>Die maximale Dateigr&ouml;&szlig;e betr&auml;gt ".round($config['maxsize'] / 1024 / 1024, 2)." MB!</font><hr />";
}
}
?>

Maximale Dateigr&ouml;&szlig;e: <?= round($config['maxsize'] / 1024 / 1024, 2); ?> MB.<br />
Erlaubte Dateitypen: jpg, jpeg, gif, png<br />
<form method="post" action="index.php" enctype="multipart/form-data">
<input type="file" name="pic" size="60" value="Bild suchen" /><br />
<br />
<input type="submit" value="Horst it Premium!" />
<br />
<center></center><? if($upped) {
echo "BBCode f&uuml;r Foren:<br /><textarea cols=60 rows=5 name=text readonly=readonly>.$filename."]http://www.spiderwheel.com/horst-premium/".$config['folder2'].$filename." (http://www.spiderwheel.com/horst-premium/".$config['folder')</textarea><br />"; ?>
<input type="button" value="Kopieren (nur IE)" name="cmdCopy" onClick="copy(this.form.text)" /><br />
<?
echo "<img src='imageThumb.php?folder=".$config['folder2']."&filename=".$filename."&quality=".$config['quality']."' /><br /><br /"; }
?></center>

</form>


</body>
</html>

imageThumb.php
<?php
header("Content-Type: image/jpeg");
$folder = $_GET['folder'];
$datei = $folder.$_GET['filename'];
$daten = getimagesize($datei);
$orgb = $daten[0];
$orgh = $daten[1];

$thumbb = 1024;
$f = $daten[0] / $thumbb;
$thumbh = $daten[1] / $f;

$wasserzeichen = ImageCreateFromPNG("watermark.png");


if($daten[2] == 1)
{
$orgbild = ImageCreateFromGIF($datei);
$thumb = ImageCreate($thumbb, $thumbh);


ImageCopyResampled($thumb, $orgbild, 0, 0, 0, 0, $thumbb, $thumbh, $orgb, $orgh);

$black = imagecolorallocate($thumb, 0,0,0);
imagecolorset($thumb, $black, 255,255,255);

ImageJPEG($thumb, $datei, $_GET['quality']);

$bild = imagecreatefromjpeg($datei);
imagecopyresampled($bild, $wasserzeichen, ($thumbb-150), ($thumbh-150), 0, 0, 1024, $thumbh, 1024, $thumbh);

imageJPEG($bild, $datei, $_GET['quality']);
imageJPEG($bild);

}
elseif($daten[2] == 2)
{
$orgbild = ImageCreateFromJPEG($datei);
$thumb = ImageCreateTrueColor($thumbb, $thumbh);
ImageCopyResampled($thumb, $orgbild, 0, 0, 0, 0, $thumbb, $thumbh, $orgb, $orgh);

ImageJPEG($thumb, $datei, $_GET['quality']);

$bild = imagecreatefromjpeg($datei);
imagecopyresampled($bild, $wasserzeichen, ($thumbb-150), ($thumbh-150), 0, 0, 1024, $thumbh, 1024, $thumbh);
imageJPEG($bild, $datei, $_GET['quality']);
imageJPEG($bild);
}
elseif($daten[2] == 3)
{
$orgbild = ImageCreateFromPNG($datei);
$thumb = ImageCreate($thumbb, $thumbh);

imagealphablending($thumb, false);

ImageCopyResampled($thumb, $orgbild, 0, 0, 0, 0, $thumbb, $thumbh, $orgb, $orgh);

imagesavealpha($thumb, true);
imagefill($thumb, 0, 0, imagecolorallocatealpha($thumb, 255, 255, 255, 127));

ImagePNG($thumb, $datei);

$bild = imagecreatefrompng($datei);

imagealphablending($wasserzeichen, false);

imagecopyresampled($bild, $wasserzeichen, ($thumbb-150), ($thumbh-150), 0, 0, 1024, $thumbh, 1024, $thumbh);

imagesavealpha($wasserzeichen, true);
imagefill($wasserzeichen, 0, 0, imagecolorallocatealpha($wasserzeichen, 255, 255, 255, 127));

imagePNG($bild, $datei);
imagePNG($bild);
}
include("http://www.spiderwheel.com/horst-premium/imageThumb2.php");
?>

included config.inc.php
<?php
/*
Bildupload Script
für ArachnoVobicA
von Webzeile (2009)
*/

$config['folder'] = "uploads/"; //dahin kommen die bilder
$config['quality'] = 75; //qualität des JPG bildes
$config['maxsize'] = 6291456 // größe in bytes

?>

Wie muss ich nun welche Datei umschreiben, damit das hochgeladene Bild in einen zweiten Uploadordner hochgeladen wird und zwar in einer bestimmten Größe, ähnlich wie es in der imageThumb.php geschieht.

Das Script soll ein Uploadscript für ein Forum werden, die BBCode ausgabe nach dem Upload soll dann einen Bildlink enthalten der vom kleinen Bild, direkt auf das größere verlinkt.

Ich hab absolut keinen Plan von PHP, wenn irgendwer Ahnung hätte wäre ich unendlich dankbar.


MfG
Micha

cortex
09.07.2009, 16:00:43
Nun möchte ich das gleiche Script so umschreiben [...]

versus


Ich hab absolut keinen Plan von PHP, wenn irgendwer Ahnung hätte wäre ich unendlich dankbar.

damit wirst du hier nicht weiterkommen - hier gibts hilfe zur selbsthilfe. ansonsten empfehle ich dir, einen entsprechenden dienstleister in anspruch zu nehmen oder eine geeignete skriptbörse zu suchen.

cx

ArachnoVobicA
09.07.2009, 18:12:59
Hiho,

ich hab ja auch schon einige Sachen probiert und bin auch gerne lernfähig.
Allerdings erschließt sich mir noch nicht alles so ganz.

So hab ich versucht in die config.inc.php einen zweiten upload Ordner zu definieren und eine zweite imageThumb.php zu erstellen, diese dann am Ende der ersten zu includen,
aber er wendet es trotzdem nicht an.

MfG
Micha

cortex
09.07.2009, 19:12:19
/*
Bildupload Script
für ArachnoVobicA
von Webzeile (2009)
*/



punkt c unserer forenregeln (http://www.selfphp.de/forum/announcement.php?f=12):

Wende Dich zuerst an den Autor [...]

cx

ArachnoVobicA
09.07.2009, 22:28:15
Hiho,

hab ich schon, von ihm kam der Vorschlag mit der included 2ten imageThumb.php, außerdem sitzt er bis Ende Juli im Urlaub ohne Internet.

Trotzdem Danke für Eure Mühe.


MfG
Micha