<?php
/**
** Variablen declaration:
*/
ini_set("max_execution_time", "300"); //maximale ausfuehrzeit des scriptes festlegen, nach 300 sek abbruch!
ini_set("upload_max_filesize", "1.55M"); //maximale upload groesse festlegen
setlocale (LC_ALL, 'de_DE@euro', 'de_DE', 'de', 'ge'); //Sprach und Format einstellung
$pre_pfad = "upload"; //Zusaetzlicher Pfad, falls der Imageordner in einem unterverzeichnis liegt
//z.B: ./inetpub/upload/imagesxxx/...
$path_thumbs = "xxxthumbs/"; //Pfad auf Webserver fuer Thumbnails
$path_images = "xxximages/"; //Pfad auf Webserver fuer Original Bilder
$x_size = "100"; //Bild maximal 100px breit
$y_size = "100"; //Bild maximal 100px hoch
$quali = "75"; //Jpeg Qualitaet bei 75%
$error = "";
$countfile = "counter.inc";
/**
** Die Funktion resize_img uebernimmt ein vorhandenes Bild "$img" aus dem Verzeichnis "$path_img"
** und verkleinert das Bild auf die breite "$x_size" und hoehe "$y_size" und reduziert die
** qualität auf "$quali" das verkleinerte Bild wird nach anschliessend ins Verzeichnis "$path_thumbs"
** kopiert. Das orginal Bild bleibt vorhanden.
*/
function resize_img($img, $path_images, $path_thumbs, $x_size, $y_size, $quali )
{
$file = $path_images.$img;
$infos = getimagesize($file);
if($infos[2] == 2) {
// jpeg
$src_img = imagecreatefromjpeg($file);
} elseif($infos[2] == 3) {
// png
$src_img = imagecreatefrompng($file);
} elseif($infos[2] == 1) {
// gif
$src_img = imagecreatefromgif($file);
}
if ($src_img != ''){
$imageinfo = getimagesize($file);
if($imageinfo[0]==$imageinfo[1]){
$new_w = $x_size;
$new_h = $y_size;
}elseif($imageinfo[0]>$imageinfo[1]){
$new_w = $x_size;
$ratio = $imageinfo[0]/$x_size;
$new_h = $imageinfo[1]/$ratio;
}elseif($imageinfo[0]<$imageinfo[1]){
$new_h = $y_size;
$ratio = $imageinfo[1]/$x_size;
$new_w = $imageinfo[0]/$ratio;
}
$dst_img = imagecreatetruecolor($new_w,$new_h);
imagecopyresampled($dst_img, $src_img, 0, 0, 0, 0, $new_w,$new_h, imagesx($src_img), imagesy($src_img));
imagejpeg( $dst_img,"./".$path_thumbs.$img,$quali);
}
}
?>
<html>
<head><title>Bilderupload</title></head>
<style>
.text { font-family: Verdana; font-size:10px; color:#333333; }
input { font-family: Verdana; font-size:10px; color:#333333; height:20px; }
</style>
<body class="text">
<?php
if(isset($upload)){
/**
** Alle Upload Bilder einem neuen Array zuweise, damit mehrere Bild hochgeladen werden
** koennen. Bilder mit Fehlern werden aussortiert.
*/
for($i = 0, $y = 0;$i <= count($_FILES['file']);$i++){
if($_FILES['file']['error'][$i] == "0"){
/**
** Upload Anzahl der Bilder wird aus der Datei "$countfile" geholt
*/
$fd = file($countfile);
$counter = sprintf("%09d",count($fd));
#$UPFILE['file']['name'][$y] = $_FILES['file']['name'][$i];
#$UPFILE['file']['type'][$y] = $_FILES['file']['type'][$i];
#$UPFILE['file']['tmp_name'][$y] = $_FILES['file']['tmp_name'][$i];
#$UPFILE['file']['error'][$y] = $_FILES['file']['error'][$i];
#$UPFILE['file']['size'][$y] = $_FILES['file']['size'][$i];
/**
** Es wird ueberprueft, ob eine Datei hochgeladen wurde, kein fehler beim upload passiert
** und die Datei kleiner als 1,5MB ist
*/
if (isset($_FILES['file']['tmp_name'][$y])AND ! $_FILES['file']['error'][$y] AND $_FILES['file']['size'][$y] < 1550000)
{
/**
** Ueberpruefung ob das Bild konform ist in den ausmassen und im Bildtyp
** Wenn ja wird es durch die php funktion "move_uploaded_file" in das "$path_images" Bilder Verzeichnis kopiert
*/
$error = "";
$is_image = getimagesize($_FILES['file']['tmp_name'][$y]);
#print_r($is_image);
if($is_image[2] != "" AND $is_image[0] <= 1024 AND $is_image[1] <= 1024){;
/**
** Zukuenftiger Bildername wird zusammengesetzt
** Aus formatierter "Counter" Anzahl und der Datei Extension
*/
$uploadedfile = $_FILES['file']['name'][$y];
$path_parts = pathinfo($uploadedfile);
$file_extension = $path_parts["extension"];
#$uploadedfile = preg_replace("[^a-zA-Z0-9]","",$uploadedfile);
#$uploadedfile = eregi_replace ("[áéíóúâêôûàèìòùäöü|\/@€/ ]","", $uploadedfile);
$uploadedfile = $counter.".".$file_extension;
/**
** Ist das Bild bereits vorhanden, bzw der Dateiname bricht das Script ab.
*/
if(is_file($path_images.$uploadedfile))
{
$error .= "<br />Sorry, der Dateiname existiert bereits!";
}else{
move_uploaded_file($_FILES['file']['tmp_name'][$y], $path_images.$uploadedfile);
}
}else{
/**
** error 1:
** Das Bild ist nicht vom Typ JPG, GIF oder PNG
** oder es ist groesser als 1024 x 1024 pixel
*/
$error .= "<br />Sorry, Es sind nur Bilder vom Typ JPG, GIF und PNG erlaubt";
$error .= "<br />Die Datei '<strong>".$_FILES['file']['name'][$y]."</strong>' ist kein erlaubtes Bild";
$error .= "<br />TIP: Das Bild hat ".$is_image[0]."x".$is_image[1]." px, erlaubt sind nur max. 1024x1024 px! <br />";
}
}else{
/**
** error 2:
** Das Bild ist nicht vom Typ JPG, GIF oder PNG oder gar keine Bild datei
** die groeße der Datei ist kleiner 0 Bytes oder ueber 1.5 MB
*/
$error .= "<br />Sorry, Es sind nur Bilder vom Typ JPG, GIF und PNG erlaubt";
$error .= "<br />Die Datei '<strong>".$_FILES['file']['name'][$y]."</strong>' ist kein erlaubtes Bild.";
$error .= "<br />TIP: Das Datei hat ".number_format($_FILES['file']['size'][$y],"","",".")." Bytes, erlaubt sind nur 1.500.000 Bytes<br />";
}
if ($error == ""){
/**
** Mit der Upload-Datei scheint alles in Ordnung zu sein, sie wurde hochgeladen, wird jetzt verkleinert
** mit der funktion "resize_img" und wird dann angezeigt.
** Die Ausgaben werden generiert.
*/
resize_img($uploadedfile, $path_images, $path_thumbs, $x_size, $y_size, $quali );
$px = getImagesize($path_images.$uploadedfile);
$forum_link1 = '<input style="width:450px;" type="text" value="[url=http://'.$GLOBALS[SERVER_NAME].'/'.$pre_pfad.'/'.$path_images.$uploadedfile.'[IMG]http://'.$GLOBALS[SERVER_NAME].'/'.$pre_pfad.'/'.$path_thumbs.$uploadedfile.'[/IMG][/url]"> Hotlink for forums';
$link = '<a href="http://'.$GLOBALS[SERVER_NAME].'/'.$pre_pfad.'/'.$path_images.$uploadedfile.'" target="_blank"><IMG SRC="http://'.$GLOBALS[SERVER_NAME].'/'.$pre_pfad.'/'.$path_thumbs.$uploadedfile.'"></a>';
$forum_link2 = '<input style="width:450px;" type="text" value="'.htmlentities($link).'"> Hotlink for Websites';
$forum_link3 = '<input style="width:450px;" type="text" value="http://'.$GLOBALS[SERVER_NAME].'/'.$pre_pfad.'/'.$path_images.$uploadedfile.'"> <a href="http://'.$GLOBALS[SERVER_NAME].'/'.$pre_pfad.'/'.$path_images.$uploadedfile.'" target="_blank">Show</a> image to friends ';
$forum_link4 = '<input style="width:450px;" type="text" value="http://'.$GLOBALS[SERVER_NAME].'/'.$pre_pfad.'/'.$path_images.$uploadedfile.'"> direct Link ';
$image_thumb = "<IMG SRC='http://".$GLOBALS[SERVER_NAME]."/".$pre_pfad."/".$path_thumbs.$uploadedfile."' >";
$image_info1 = "FileNr. ".count($fd)."<br /> Filesize: ".round((filesize($path_images.$uploadedfile)/1024),2)."KB <br /> Width: ".$px[0]." px <br /> Height: ".$px[1]." px <br /> Bits: ".$px[bits]." <br /> Channels: ".$px[channels]." <br /> Mime: ".$px[mime]." <br /> md5: ".md5_file($path_thumbs.$uploadedfile);
?>
<table class="text" align="center">
<tr><td colspan="2"><?php echo $error ?></td></tr>
<tr><td colspan="2"><?php echo $forum_link1 ?></td></tr>
<tr><td colspan="2"><?php echo $forum_link2 ?></td></tr>
<tr><td colspan="2"><?php echo $forum_link3 ?></td></tr>
<tr><td colspan="2"><?php echo $forum_link4 ?></td></tr>
<tr><td width="25%"><?php echo $image_thumb ?></td><td width="75%"><? echo $image_info1 ?></td></tr>
<tr><td colspan="2"></td></tr>
<tr><td><a href="<? echo $PHP_SELF ?>"><strong>[<< zurück]</strong></a> zum Formular</td></tr>
</table>
<?php
}else{
/**
** Es wurde ein error beim Upload erzeugt
*/
?>
<table class="text" align="center">
<tr><td><?php echo $error ?></td></tr>
<tr><td></td></tr>
<tr><td><a href="<? echo $PHP_SELF ?>"><strong>[<< zurück]</strong></a> zum Formular</td></tr>
</table>
<?php
}
/**
** Uploadinfos werden in die Counter Datei geschrieben.
*/
$fp = fopen($countfile,"a+");
fwrite($fp, date("Y.m.d-H:i:s")." || ".$GLOBALS[REMOTE_ADDR]." || ".$UPFILE['file']['name'][$y]." || ".$UPFILE['file']['type'][$y]." || ".$UPFILE['file']['size'][$y]." || ".$uploadedfile."\n");
fclose($fp);
}
$y++;
}
}else{
/**
** Standart aufruf des Scriptes, zum Datei auswaehlen und hochladen
*/
?>
<script LANGUAGE="JavaScript" type="text/javascript">
function addField()
{
var MyInput, MyInput2;
MyInput = document.getElementById('uploadArea').innerHTML;
MyInput2 = MyInput + '<input type="file" name="file[]" style="width:380px;" class="text"><br />';
document.getElementById('uploadArea').innerHTML = MyInput2;
}
</script>
<br />
<br />
<form action="<?=$_PHP_SELF ?>" method="POST" name="upload" enctype="multipart/form-data">
<table align="center" class="text"><tr><td>
Hier kannst du Eigene Bilder hochladen; Die Bilder werden dann automatisch unter Pics hochgespielt;<br />
Es können nur jpeg/jpg/png/gif Dateien hochgeladen werden; <br />
(nach 300 Sekunden bricht der upload ab);<br />
Bitte warte solange bis der Browser fertig meldet, dies kann ja nach größe des Bildes etwas dauern;<br />
</td>
</tr>
<tr>
<td>
<input type="hidden" name="MAX_FILE_SIZE" value="1550000">
<!-- MAX_FILE_SIZE in Bytes manche Browser aktzeptieren diese einstellung und berechen ggf den upload bei groesseren Dateien ab... //-->
<div id="uploadArea">
<input type="file" name="file[]" style="width:380px;" class="text" ><br />
</div>
<input type="button" name="add" value="add" onClick="addField();">
<input type="submit" name="upload" value=">> Upload" class="text">
</td>
</tr>
</table>
</form>
<?php
}
?>
</body>
</html>