[S] Uploadscript f. Bilder!

mRAC [HWLUXX]

Urgestein
Thread Starter
Mitglied seit
17.02.2005
Beiträge
7.148
Hi!
Suche ein Script, das so arbeitet wie imageshack...
man sollte ein bild von der hdd auswählen können, das dann hochgeladen wird, wozu autom. ein thumb erstellt wird und dann der link vom thumb & link zum bild ausgegebn wird...

also genau das was imageshack macht, so das ich das foto direkt in nen forum einbinden kann! offe sowas gibs?!

mfg
 
Wenn Du diese Anzeige nicht sehen willst, registriere Dich und/oder logge Dich ein.
Hier mal der QuellCode eines Sciptes das ich mal vor Monaten geschrieben habe. Ich habs nur im InternetExplorer getestet, und da hats gut funktioniert.

PHP:
<?php
ini_set("max_execution_time", "300");
setlocale (LC_ALL, 'de_DE@euro', 'de_DE', 'de', 'ge');
//Variablen declaration:
$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%
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);
	}
}	
if(isset($upload)){
	if (isset($_FILES['file'])and ! $_FILES['file']['error']) {
		$uploadedfile = $_FILES['file']['name'];
		$uploadedfile = preg_replace("[^a-zA-Z0-9]","",$uploadedfile);
		$uploadedfile = preg_replace ('|\W|', '', $uploadedfile);
		$uploadedfile = eregi_replace ("[áéíóúâêôûàèìòùäöü|\/890@€]","", $uploadedfile);               
		#if(is_file($path_images.$uploadedfile)){ echo "Dateiname existiert bereits!"; }
	    move_uploaded_file($_FILES['file']['tmp_name'], $path_images.$uploadedfile);
	}
	resize_img($uploadedfile, $path_images, $path_thumbs, $x_size, $y_size, $quali );
	$px = getImagesize($path_images.$uploadedfile);	  
	$forum_link1 = '<br /><input style="width:450px;" type="text" value="[URL=http://'.$GLOBALS[SERVER_NAME].'/'.$path_images.$uploadedfile.'[IMG]http://'.$GLOBALS[SERVER_NAME].'/'.$path_thumbs.$uploadedfile.'[/IMG][/URL]"> Hotlink for forums<br />';
	$link = '<a href="http://'.$GLOBALS[SERVER_NAME].'/'.$path_images.$uploadedfile.'" target="_blank"><IMG SRC="http://'.$GLOBALS[SERVER_NAME].'/'.$path_thumbs.$uploadedfile.'"></a>';
	$forum_link2 = '<br /><input style="width:450px;" type="text" value="'.htmlentities($link).'"> Hotlink for Websites <br />';
	$forum_link3 = '<br /><input style="width:450px;" type="text" value="http://'.$GLOBALS[SERVER_NAME].'/'.$path_images.$uploadedfile.'"> <a href="http://'.$GLOBALS[SERVER_NAME].'/'.$path_images.$uploadedfile.'" target="_blank">Show</a> image to friends <br />';
	$forum_link4 = '<br /><input style="width:450px;" type="text" value="http://'.$GLOBALS[SERVER_NAME].'/'.$path_images.$uploadedfile.'"> direct Link<br />';
	$image_thumb = "<br /><IMG SRC='http://".$GLOBALS[SERVER_NAME]."/".$path_thumbs.$uploadedfile."'></br />";
	$image_info1 = "<br />size: ".round((filesize($path_images.$uploadedfile)/1024),2)."KB | width: ".$px[0]."px | height: ".$px[1]."px</br />";
}
?>
<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">
<form action="<?=$_PHP_SELF?>" method="POST" name="upload" enctype="multipart/form-data">
<table align="center" class="text"><tr><td>
<?php echo $forum_link1.$forum_link2.$forum_link3.$forum_link4.$image_thumb.$image_info1."<br />"; ?>	
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; (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="file" name="file" style="width:380px;" class="text" > 
    <input type="submit" name="upload" value=">> Upload" class="text"></td>
  </tr>
</table>
</form>
</body>
</html>
Ansonsten ist Google dein Freund oder z.B. hier suchen
gruß wario
 
hi!
danke für das script da is nur 1 fehler drin den ich net rep. kann!
der uploaded die files immer ohne dateianhang, d.h. der is zwar da aber da fehlt der punkt zwischen dateinmae und dateiendung, somit kann das bild net angezeigt werden!
is bei mir im iex und im firefox so!

kannste abhilfe schaffen? oder irgendwer anders?
 
Zuletzt bearbeitet:
ja shice Copy&Paste ohne zu testen^^

ok nimm die Zeile 47 ($uploadedfile = preg_replace ('|\W|', '', $uploadedfile);) raus, oder deaktiviere Sie durch eine vorgestellte Raute #
PHP:
#$uploadedfile = preg_replace ('|\W|', '', $uploadedfile);
dann sollte es gehen.
P.S. Wenn du willst du das das Script keine Anderen Dateien als (JPG/GIF/PNG) entgegennimmt, dann musst du noch folgendes ergänzen.
Dient zu deiner Sicherheit.
ersetze:
Code:
    if (isset($_FILES['file'])and ! $_FILES['file']['error']) { 
        $uploadedfile = $_FILES['file']['name']; 
        $uploadedfile = preg_replace("[^a-zA-Z0-9]","",$uploadedfile); 
        $uploadedfile = preg_replace ('|\W|', '', $uploadedfile); 
        $uploadedfile = eregi_replace ("[áéíóúâêôûàèìòùäöü|\/890@€]","", $uploadedfile);                
        #if(is_file($path_images.$uploadedfile)){ echo "Dateiname existiert bereits!"; } 
        move_uploaded_file($_FILES['file']['tmp_name'], $path_images.$uploadedfile); 
    }
in
PHP:
	if (isset($_FILES['file'])and ! $_FILES['file']['error']) {
		$is_image = getimagesize($_FILES['file']['name']);
		if($is_image[2] != ""){;
			$uploadedfile = $_FILES['file']['name'];
			$uploadedfile = preg_replace("[^a-zA-Z0-9]","",$uploadedfile);
			#$uploadedfile = preg_replace ('|\W|', '', $uploadedfile);
			$uploadedfile = eregi_replace ("[áéíóúâêôûàèìòùäöü|\/890@€]","", $uploadedfile);               
			#if(is_file($path_images.$uploadedfile)){ echo "Dateiname existiert bereits!"; }
		    move_uploaded_file($_FILES['file']['tmp_name'], $path_images.$uploadedfile);
		}else{
			echo "Sorry Es sind nur Bilder vom Typ JPG, GIF und PNG erlaubt <a href='".$PHP_SELF."'>zurück</a>";
			exit;
		}
	}
 
Hey Danke, funktioniert soweit, nur ein paar Fragen noch:


1. Kann man Beschränkungen für die Datei- und Bildgröße einfügen? Also das man max. Bilder bis zu einer Größe von 1024x768 mit 1.5MB hochladen kann?

2. Wenn ich ein Foto hochlade, welches den gleichen Namen trägt wie ein schon vorhandenes, wird das vorhandene auf dem Webspace überschrieben, d.h. ist nicht mehr verfügbar, wie macht man das, das z.B. nur eine Fehlermeldung kommt, dass es so ein Bild schon gibt und der Upload dann abbricht?!

3. Wenn ich etwas geuploadet hab, kommt unter den Links und dem Preview wieder das "Start-Fenster", also das wo man ein Foto auswählen kann. Hätte dort gerne aber nur einen Zurück-Link, der mich dahin bringt. Also dass das "Start-Fenster" ganz wegfällt und dafür ein Zurück-Link erscheint! Geht das?

4. "
$is_image = getimagesize($_FILES['file']['name'])" Füge ich die Beschränkung bei dir ein, meldet PHP mit einen Fehler in diese Zeile, es sagt das irgendetwas nicht ausgeführt werden kann, woran liegt das? Bilder werden dann auch nichtmehr geuppt!
 
Zuletzt bearbeitet:
Das machst du in etwa so :0)
PHP:
<?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
$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       = "";
/**
** 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)){
	#print_r($_FILES['file']);
	/**
	** 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'])AND ! $_FILES['file']['error'] AND $_FILES['file']['size'] < 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
		*/
		$is_image = getimagesize($_FILES['file']['tmp_name']);
		#print_r($is_image);
		if($is_image[2] != "" AND $is_image[0] <= 1024 AND $is_image[1] <= 1024){;
			$uploadedfile = $_FILES['file']['name'];
			$uploadedfile = preg_replace("[^a-zA-Z0-9]","",$uploadedfile);
			#$uploadedfile = preg_replace ('|\W|', '', $uploadedfile);
			$uploadedfile = eregi_replace ("[áéíóúâêôûàèìòùäöü|\/890@€/ ]","", $uploadedfile);
			/**
			** 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'], $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']."</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']."</strong>' ist kein erlaubtes Bild.";
		$error .= "<br />TIP: Das Datei hat ".number_format($_FILES['file']['size'],"","",".")." 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].'/'.$path_images.$uploadedfile.'[IMG]http://'.$GLOBALS[SERVER_NAME].'/'.$path_thumbs.$uploadedfile.'[/IMG][/URL]"> Hotlink for forums';
		$link = '<a href="http://'.$GLOBALS[SERVER_NAME].'/'.$path_images.$uploadedfile.'" target="_blank"><IMG SRC="http://'.$GLOBALS[SERVER_NAME].'/'.$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].'/'.$path_images.$uploadedfile.'"> <a href="http://'.$GLOBALS[SERVER_NAME].'/'.$path_images.$uploadedfile.'" target="_blank">Show</a> image to friends ';
		$forum_link4 = '<input style="width:450px;" type="text" value="http://'.$GLOBALS[SERVER_NAME].'/'.$path_images.$uploadedfile.'"> direct Link ';
		$image_thumb = "<IMG SRC='http://".$GLOBALS[SERVER_NAME]."/".$path_thumbs.$uploadedfile."' >";
		$image_info1 = " 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];
		?>
		<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
	}	
}else{	
/**
** Standart aufruf des Scriptes, zum Datei auswaehlen und hochladen
*/
?>
<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... //-->
    <input type="file" name="file" style="width:380px;" class="text" >
    <input type="submit" name="upload" value=">> Upload" class="text"></td>
  </tr>
</table>
</form>
<?php
}
?>
</body>
</html>
hoffe s'passe so!
gruß wario
 
Hallo,
ich habe heute diesen Beitrag gefunden, als ich bei Google nach einem Upload-Script gesucht habe.
Dieses Script, ist der HAMMER!!!!
DANKE.

Ich hätte noch zwei Fragen:
1.) Wie kann man die Upload-Fenster erhöhen, so das man 5 oder 10 Dateien Gleichzeitig hochladen kann??? Geht das überhaupt/ist es sinnvoll???

2.) Kann man es realisieren, dass die Bilder in fortlaufende Nummern beim hochladen umbenannt werden, da so doppelte Bilder nicht überschrieben werden/gelöscht werden???

EDIT:
Wie groß ist der Aufwand, das man von einer URL Bilder hochladen kann???
 
Zuletzt bearbeitet:
@Stargesicht:

schön, dass dir das Script gefällt.
Ich werd mir morgen im laufe des Tages mal deine Wünsche zu Herzen nehmen^^
sollte eigentlich kein großes Problem darstellen!
 
- Bilder werden nun nach der Uploadanzahl nummeriert benannt.
- Mehrere Bilder können nun gleichzeitig hochgeladen werden.

Das mit den Bildern über URL zum hochladen, ist leider nicht so auf die
schnelle zu bewerkstelligen, da es jetzt doch etwas zu unübersichtlich wird.
Und man jedemenge Fehler/Falscheingaben abfangen muss...
mal sehen wies morgen aussieht.
PHP:
<?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>
 
Super Arbeit, vielen Dank für deine Mühe....

leider funktioniert es bei mir nicht so ganz. Es erscheint eine Fehlermeldung nach dem Hochladen...

Danke trotzdem für deine Mühe....
 
welche fehlermeldung denn?
wenn es eine Warnung ist, das die datei counter.inc fehlt, dürfte die nur beim ersten Aufruf des Scriptes erscheinen. Poste doch mal die Meldung, wenn sie nicht weggeht...
 
Fehlermeldung beim upload von 2 Dateien:

Warning: file(counter.inc) [function.file]: failed to open stream: Datei oder Verzeichnis nicht gefunden in /home/httpd/vhosts/XXX.de/httpdocs/upload3.php on line 76

Sorry, der Dateiname existiert bereits!
[<< zurück] zum Formular

Warning: fopen(counter.inc) [function.fopen]: failed to open stream: Keine Berechtigung in /home/httpd/vhosts/XXX.de/httpdocs/upload3.php on line 178

Warning: fwrite(): supplied argument is not a valid stream resource in /home/httpd/vhosts/XXX.de/httpdocs/upload3.php on line 179

Warning: fclose(): supplied argument is not a valid stream resource in /home/httpd/vhosts/XXX.de/httpdocs/upload3.php on line 180

Warning: file(counter.inc) [function.file]: failed to open stream: Datei oder Verzeichnis nicht gefunden in /home/httpd/vhosts/XXX.de/httpdocs/upload3.php on line 76

Sorry, der Dateiname existiert bereits!
[<< zurück] zum Formular

Warning: fopen(counter.inc) [function.fopen]: failed to open stream: Keine Berechtigung in /home/httpd/vhosts/XXX.de/httpdocs/upload3.php on line 178

Warning: fwrite(): supplied argument is not a valid stream resource in /home/httpd/vhosts/XXX.de/httpdocs/upload3.php on line 179

Warning: fclose(): supplied argument is not a valid stream resource in /home/httpd/vhosts/XXX.de/httpdocs/upload3.php on line 180
 
ok, die Fehlermeldungen beziehen sich alle auf das erstellen, bzw. aktualisieren der "counter.inc" datei.
In die "conter.inc" wird eine Log Zeile reingeschrieben, für jedes hochgeladene Bild. Mit Datum/Urzeit, IP des Uploaders, Bildtyp, Bildname und Bildgröße.
Beim hochladen werden dann die bisher gelogten Zeilen gezählt, und dann das aktuell hochgeladene Bild nach der anzahl der Zeilen (+1) benannt.
Anscheinend hast du bei deinem Webspace nicht die erfoderlichen rechte (zumindest für php) dass das script diese "counter.inc" Datei anlegt.
Also musst du deine Schreibrechte im Verzeichniss prüfen, oder per hand im selben Verzeichnis wie das Uploadscript liegt, eine leere "counter.inc" Datei erstellen. Mit den Rechten, das php da reinschreiben darf.
 
wario schrieb:
Also musst du deine Schreibrechte im Verzeichniss prüfen, oder per hand im selben Verzeichnis wie das Uploadscript liegt, eine leere "counter.inc" Datei erstellen. Mit den Rechten, das php da reinschreiben darf.
Also, du meinst eine txt Datei die "counter.inc" heißt???
Wo soll diese Datei sein??
Welche Rechte muß ich ändern???

OK, ich habe eine counter.inc von Hand angelegt.
Jetzt erscheint kein Fehler mehr, aber wenn ich 2 Bilder hochlade , wird nur der Link für ein Bild ausgegeben.

Ich habe es gefunden.
Da fehlte eine "]" Klammer...
Jetzt werden beide Links ausgegeben, aber keine Bilder angezeigt...

EDIT:
Jetzt läuft es tadellos...

DANKE!!!
 
Zuletzt bearbeitet:
Hardwareluxx setzt keine externen Werbe- und Tracking-Cookies ein. Auf unserer Webseite finden Sie nur noch Cookies nach berechtigtem Interesse (Art. 6 Abs. 1 Satz 1 lit. f DSGVO) oder eigene funktionelle Cookies. Durch die Nutzung unserer Webseite erklären Sie sich damit einverstanden, dass wir diese Cookies setzen. Mehr Informationen und Möglichkeiten zur Einstellung unserer Cookies finden Sie in unserer Datenschutzerklärung.


Zurück
Oben Unten refresh