• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

[PHP] Upload von Mehreren Bildern (Script)

Coyboc

New member
Also ich hab mich mal an ein Script gewagt, mit dem man mehrere Dateien gleichzeitig(das script machts nacheinander) Uploadet, hauptsächlich nur für Bilder.

Es erlaubt nur den Upload von JPG/JPEG,GIF undd PNGs, die nicht größer als 300KB sind. Vor dem uploaden wird man gefragt wie viele Bilder man uploaden will, man kann 1-10 Bilder gleichzeitig uploaden, wobei es noch so geschrieben ist das die zahl beliebig erhöht werden kann, wenn man das script ändert.

Wenn das script zum erstenmal ausgeführt wird, oder es den ordner 'upload' innerhalb des ordners wo sich das Script befindet nicht vorhanden ist, wird der Ordner 'upload' automatisch erstellt.

Einfach kopieren und auf euren Server austesten, wenn ihr die Lust habt, ich danke für kretik und hinweise :D.

(hab das script von hinten bis vorn selbst entwickelt, ich hab nur im internet zu aufrischung einiger funktionen gesucht)

PHP:
<? 
//Erstellt ein Verzeichnis im Ordner wo das Script ist
if (@mkdir('upload'))
{
  echo '<div style="font-size:11px;">Da das Script zum erstenmal ausgeführt wurde, wurde der Ordner /upload/ erstellt! Das geschieht nur wenn der ordner Upload nicht vorhanden ist.</div>';
}
?>
<!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>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Fotos-uploaden</title>
</head>

<body>
<?
//wird ausgeführt wenn Bilder hochgeladen werden
if(isset($_POST['senden']) && $_POST['senden'] == "Senden"){
$wie_viel=0;
	//zählt übertragnungen
	for($i=1;$i<=$_POST['anzahl'];$i++){
	if(isset($_FILES['foto_'.$i]['tmp_name']) && $_FILES['foto_'.$i]['type'] != ""){$wie_viel++;}
	}
	$z=0;
	//beginn der kopierschleifer der Bilder
		for($i=1;$i<=$_POST['anzahl'];$i++){
			//Kontrolle ob überhaupt was hochgeladen wird, kein leeren Feld wird hochgeladen
			if(isset($_FILES['foto_'.$i]['tmp_name']) && $_FILES['foto_'.$i]['type'] != ""){
				//aussortierung der Bilder die nicht dem Dateiangaben entsprechen
				if($_FILES['foto_'.$i]['type'] != "image/jpg" && $_FILES['foto_'.$i]['type'] != "image/jpeg" && $_FILES['foto_'.$i]['type'] != "image/gif" && $_FILES['foto_'.$i]['type'] != "image/png"){			$z++;
					//spaltung der infomation der Dateiangabe für Fehlermedlung
					$type = explode("/",$_FILES['foto_'.$i]['type']);
					//Fehlermeldung
					echo "<div>".$z."/".$wie_viel." Die Datei <span style=\"color:red;\">".$_FILES['foto_'.$i]['name']."</span> muss ein Jpeg/Jpg, Gif oder PNG Format sein! Es ist eine \"".$type[1]."\"-Datei!</div>";
					}else{
					//kontrolle ob das Bild nich größer ist als 300KB
					if($_FILES['foto_'.$i]['size'] > 300000){
						//fehlermeldung
									$z++;
						echo "<div>".$z."/".$wie_viel." Die Dateigröße des Fotos <span style=\"color:red;\">".$_FILES['foto_'.$i]['name']."</span> ist zu groß! Es dürfen nur Bilder mit der maximalen Dateigröße von 300KB hochgeladen werden!(Datei größe ihres Bildes:".round(($_FILES['foto_'.$i]['size']/1000),1)."KB)</div>";
						}else{
							$kontrolle= true;
							$open = opendir("./upload/");
    							// Kontrolle ob das Bild schon vorhanden ist
								while($file = readdir($open)){if($_FILES['foto_'.$i]['name'] == $file){$kontrolle=false;}}
									//wenn bild schon vorhanden dann ist kontrolle false geetzt, und Fehlermeldung wird ausgegeben
									if($kontrolle == false){$z++;echo "<div>".$z."/".$wie_viel." Das Foto <span style=\"color:red;\">".$_FILES['foto_'.$i]['name']."</span> ist schon Vorhanden, keine Übertragung!</div>";}
									else{
								//übertragung in den upload Ordner, wenn fehler beim übertragen, keine übertragung stattdessen Fehlermeldung
								if(!move_uploaded_file($_FILES['foto_'.$i]['tmp_name'], "./upload/".$_FILES['foto_'.$i]['name'])){
											$z++;
									echo "<div style=\"color:red;\">".$z."/".$wie_viel." Fehler beim Hochladen der Datei: ".$_FILES['foto_'.$i]['name']."!</div>";
									}else{			$z++; echo "<div>".$z."/".$wie_viel." ".$_FILES['foto_'.$i]['name']." <span style=\"color:green;text-decoration:underline; font-style:italic;\">Übertragen!</span></div>";}
										}
						}
				}
			}
		}			

}else{
//Wird beim laden der seite ausgeführt, wenn seite zum 1.mal geladen wurde
if(!isset($_POST['zahl']) || $_POST['zahl'] <=0 || !isset($_POST['Bauen']))
	{echo 'Wie viele Bilder möchtest du Hochladen?<form name="inputs" action="'.$_SERVER['PHP_SELF'].'" method="POST"><input size="2px" maxlength="2" type="text" name="zahl" value=""><input type="submit" name="Bauen" value="Los!" /></form><div style="font-size:11px;color:red;">(Es werden der übersichthalber nur Maximal 10 Bilder hochgeladen werden!<br>Es werden nur Bilder mit den Dateiformat JPEG/JPG/PNG/GIF und kleiner als 300KB groß sind hochgeladen!)</div>';die();}

?>
<!-- File-Form für den Upload -->
<form enctype="multipart/form-data" action="<? $_SERVER['PHP_SELF']; ?>" method="post">
<?
//anzahl der angegebenen Inputfelder wird in variable $inputs übergeben
$inputs = $_POST['zahl'];
//ist $inouts größer als 10, wird diese auf 10 gesetzt und es wird eine alertfenster ausgegeben, von javvascript
if($inputs > 10){$inputs = 10; echo '<script type="text/javascript">alert("Es können nur maximal 10 Bilder gleichzeitig hochgeladen werden! Die Anzahl wird auf 10 beschränkt!");</script>';}
//bau der Inputfelder
for($i = 1; $i <= $inputs; $i++){
echo "Bild ".$i.": <input type='file' name='foto_".$i."'><br>";
}
?>
<input type='hidden' name='anzahl' value='<? echo $i; ?>'><input type='submit' name='senden'  value='Senden'>
</form>
<? } ?>
</body>
</html>

(Funktiontüchtigkeit bis jetzt nur mit FireFox garantiert, überarbeitungen laufen)
 

Anhänge

  • upload_only_opera_u_FF.zip
    2,1 KB · Aufrufe: 5
Zuletzt bearbeitet:
[PHP] Upload von Mehreren Bildern (Script) - Fixed

Hier der nachbearbeitete Script:
-Es werden nun die Browser erkannt (hauptsächlich IE;Firefox;Opera) und angezeigt
-es wurden einige Rechtschreibfehler entfernt
-einige texte wurden überarbeitet
-ich hab nun meine initialien in den quellcode eingefügt, mit email und namen

hoffe des gefällt euch besser, das script befindet sich im Anhang als ZIP-Datei, und beinhaltet:

Code:
Upload_script_by_Coyboc/
 /upload.php
 /Firefox_Upload.gif
 /IE_Upload.gif
 /Opera_Upload.gif
 

Anhänge

  • Upload_script_by_Coyboc.zip
    7,7 KB · Aufrufe: 15
AW: [PHP] Upload von Mehreren Bildern (Script) - Updated

Script nachbearbeitet:
Komplette überarbeitung überall, hinzugefügt und neuer Schwerpunkt der seite FTP-Stream.

Du hast jetzt die möglichkeit auf ein FTP-Server zuzugreifen, als aller erstes solltest du die Konfiguration machen, diese speichert sich dann ab und liegt im hintergrund solange vor bis du sie löschen solltest.

Danach kannst du dich mit deinem FTP-passwort (username wurde vorher in der config.conf datei gespreichert) auf den FTP einloggen und bis zu 10 Dateien hochladen.

Es werden Ordnerstruktur, und ordner des ausgeweählten ordners angezeigt, nach upload der dateien.

Rechte sollten für ordner erstellung auf den FTP vorhanden sein, oder der Eingestellte ordner ist schon auf dem FTP vorhanden.

Die Zip-Datei beinhaltet:
Code:
Upload_page/
 css/
  css-styles.css
 ftp/
   java/
    line.php
   temp/
 ftp_config.php
 ftp_infos.php
 ftp_logged.php
 pics/
 Firefox_upload.gif
 IE_upload.gif
 Opera_upload.gif
 upload/
footer.php
impressum.php
index.php
styles.php
upload_direct.php
upload_ftp.php

Installation:
Direkt auf den PHP-Server-Root kopieren, und über browser
*deine hostip"/upload_page/ aufrufen.

Ich danke euch wenn ihr mir Anregungen und Fehler meldet.
Ich arbeite weiter an der Seite.
 

Anhänge

  • Upload_page_by_Coyboc.zip
    18,5 KB · Aufrufe: 32
Hi binn neu hier grad angemeldet, darum weiß ich nicht gennau ob ich jetzt hier rein schreiben kann :D

Dein upload ist cool, allerdings kam da einen fehler bei mir (Firefox) wegen das getBrowser online 9:

habs aber so gemacht

PHP:
function using_ie()
{
    $u_agent = $_SERVER['HTTP_USER_AGENT'];
    $ub = False;
    if(preg_match('/MSIE/i',$u_agent))
    {
        $ub = True;
    }
   
    return $ub;
}

function ie_box() {
    if (using_ie()) {
        ?>
        <div class="iebox">
            This page is not designed for Intenet Explorer. <a href="http://www.google.com/chrome">Google Chrome</a>.
        </div>
        <?php
    return;
    }
}
?>

<?php
function getBrowser()
{
    $u_agent = $_SERVER['HTTP_USER_AGENT'];
    $bname = 'Unknown';
    $platform = 'Unknown';
    $version= "";

    //First get the platform?
    if (preg_match('/linux/i', $u_agent)) {
        $platform = 'linux';
    }
    elseif (preg_match('/macintosh|mac os x/i', $u_agent)) {
        $platform = 'mac';
    }
    elseif (preg_match('/windows|win32/i', $u_agent)) {
        $platform = 'windows';
    }
   
    // Next get the name of the useragent yes seperately and for good reason
    if(preg_match('/MSIE/i',$u_agent) && !preg_match('/Opera/i',$u_agent))
    {
        $bname = 'Internet Explorer';
        $ub = "MSIE";
    }
    elseif(preg_match('/Firefox/i',$u_agent))
    {
        $bname = 'Mozilla Firefox';
        $ub = "Firefox";
    }
    elseif(preg_match('/Chrome/i',$u_agent))
    {
        $bname = 'Google Chrome';
        $ub = "Chrome";
    }
    elseif(preg_match('/Safari/i',$u_agent))
    {
        $bname = 'Apple Safari';
        $ub = "Safari";
    }
    elseif(preg_match('/Opera/i',$u_agent))
    {
        $bname = 'Opera';
        $ub = "Opera";
    }
    elseif(preg_match('/Netscape/i',$u_agent))
    {
        $bname = 'Netscape';
        $ub = "Netscape";
    }
   
    // finally get the correct version number
    $known = array('Version', $ub, 'other');
    $pattern = '#(?<browser>' . join('|', $known) .
    ')[/ ]+(?<version>[0-9.|a-zA-Z.]*)#';
    if (!preg_match_all($pattern, $u_agent, $matches)) {
        // we have no matching number just continue
    }
   
    // see how many we have
    $i = count($matches['browser']);
    if ($i != 1) {
        //we will have two since we are not using 'other' argument yet
        //see if version is before or after the name
        if (strripos($u_agent,"Version") < strripos($u_agent,$ub)){
            $version= $matches['version'][0];
        }
        else {
            $version= $matches['version'][1];
        }
    }
    else {
        $version= $matches['version'][0];
    }
   
    // check if we have a number
    if ($version==null || $version=="") {$version="?";}
   
    return array(
        'userAgent' => $u_agent,
        'name'      => $bname,
        'version'   => $version,
        'platform'  => $platform,
        'pattern'    => $pattern
    );
}

// now try it
$ua=getBrowser();
$yourbrowser= "Your browser: " . $ua['name'] . " " . $ua['version'] . " on " .$ua['platform'] . " reports: <br >" . $ua['userAgent'];

print_r($yourbrowser);

der script anstadt dein $browse = getBrowser(NULL,True);

Hast du auch arnung von mysql? suche gennau so einem upload der aber die bilder z.b xxx.jpg in der bd speichert.


Lg seby
 
Zurück
Oben