PHP Mehrere Dateien hochladen?
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
anzahl
bestimmtes verzeichnis
break
count
datei
eins
error
fehler
gren
hochladen
image
klau
ordner
schleifen
schlu
schreiten
sicherheitsfaktor
spa
step
unterschiedliche namen
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Man besorge dir einen FTP-Uploader!
Dafür musst du dir natürlich erstmal Traffic für FTP bei der Auktion ersteigern!
Dann kannst du soviele PHP Dateien draufknallen (solange sie Sinn ergeben) wie du möchtest)
Grüße
Tom -
Danke für deine Hilfe aber..,
Du hast mich falsch verstanden. Ich möchte diese Uploader auf meinenm Website haben sodass andere Leute auch hochladen können, nicht nur für mich. -
das machst du am Besten auch über FTP-Uploader!
Is mir ein zu hoher Sicherheitsfaktor ^^'
Nee, sorry, ich könnte sowas nicht, wenn mir einer meine dateien klaut is es aus!
Grüße
Tom -
logd05 schrieb:
das machst du am Besten auch über FTP-Uploader!
Is mir ein zu hoher Sicherheitsfaktor ^^'
Nee, sorry, ich könnte sowas nicht, wenn mir einer meine dateien klaut is es aus!
Grüße
Tom
Du hast ihn net verstanden.
Er will nur, das andere ihm etwas in ein bestimmtes Verzeichnis hochladen können, und vorher auswählen dürfen wie viele Dateien sie hochladen wollen.
Nicht, dass die was verändern/klauen dürfen/sollen.
@topic:
Ich würde das mit einer while schleife probieren, die solange das Array der gesendeten Dateien durchliest bis es keine mehr gibt und die hochlädt.
Allerdings müsste ich für genauen Code etwas länger noch überlegen und dazu hab ich jetz keine Zeit.
-AlienDwarf -
logd05 schrieb:
das machst du am Besten auch über FTP-Uploader!
Is mir ein zu hoher Sicherheitsfaktor ^^'
Nee, sorry, ich könnte sowas nicht, wenn mir einer meine dateien klaut is es aus!
Grüße
Tom
Du hast ihn net verstanden.
Er will nur, das andere ihm etwas in ein bestimmtes Verzeichnis hochladen können, und vorher auswählen dürfen wie viele Dateien sie hochladen wollen.
Nicht, dass die was verändern/klauen dürfen/sollen.
@topic:
Ich würde das mit einer while schleife probieren, die solange das Array der gesendeten Dateien durchliest bis es keine mehr gibt und die hochlädt.
Allerdings müsste ich für genauen Code etwas länger noch überlegen und dazu hab ich jetz keine Zeit.
-AlienDwarf
Hallo,
Danke für deinen Antwort aber ebe ich bin nicht so gut in PHP und das mit Array oder while Schleife kann ich gar nicht. Ich kann nur eine PHP Datei ändern. Mehr weiss ich leider nicht also ich möchte gern gane Script haben wenn ihr es weisst. THX -
<?php
$ordner = "uploads/"; //Ordner in den die Dateien geladen werden, muss mit / enden.
if(!is_nummeric($_POST['anzahl']) || $_POST['anzahl']<1) {
?>
<form action="" method="POST">
Wieviele Dateien wollen Sie hochladen? <input type="text" name="anzahl" value="1" size="2"><br>
<input type="submit" value="Absenden">
</form>
<?php
} else {
if(!$_POST['upload']) {
?>
<form action="" method="POST">
<input type="hidden" name="anzahl" value="<?php echo $_POST['anzahl']; ?>">
<?php
while($i=0; $i<$_POST['anzahl']; $i++) {
?>
<br><input type="file" name="<?php echo $i; ?>">
<?php
}
echo"<br><br><input type=\"submit\" value=\"Hochladen\"></form>";
} else {
while($i=0;$i<$_POST['anzahl']; $i++) {
move_uploaded_file($_FILES[$i]['tmp_name'], $ordner.$_FILES[$i]['name']);
}
echo"Alle hochgeladen";
}
}
?>
Ungetestet. -
also ich hab ma eins gehabt, das hat auch funktioniert...
hier ma der code dazu.. is n bissl lang, aber was solls...
$erlaubt = array("bmp","avi","midi","mpeg","mpg","mp3","wav","wmv","wma", "mov","rar","zip","ace","tar","exe","lzh","gz","bz2","bz2","jar"); $upload_dir = "temp"; //Zielverzeichniss. Ohne / am Schluss //--------------------------------------------------------------------------- if (isset ($_GET["step"])) $step = $_GET["step"]; else $step = 1; switch ($step) { //--------------------------------------------------------------------------- //Schritt Eins case 1: echo "<form action=$PHP_SELF?step=2 method=POST> <table width=100% border=0 cellspacing=2 cellpadding=0> <tr valign=top> <td width=250 bgcolor=#666666> <font color=#FFFFFF>Wieviele Dateien wollen Sie uploaden?</font></td> <td bgcolor=#CCCCCC> <input name=ii type=text id=ii size=8> <font color=#FF0000 size=2>Beliebige Zahl eingeben...</font> </td> </tr> <tr valign=top> <td width=250 bgcolor=#666666> <font color=#FFFFFF>weiter zu Schritt Zwei...</font> </td> <td bgcolor=#CCCCCC> <input name=step2 type=submit value=Schritt 2> </td> </tr> </table> </form>"; break; //Schritt Eins Ende //--------------------------------------------------------------------------- //Schritt Zwei case 2: if ($_POST["step2"]) { echo $id; $ii = $_POST["ii"]; echo "<form name=form1 method=post action=$PHP_SELF?step=3 enctype=multipart/form-data name=form1> "; ?> <table width="100%" border="0" cellspacing="2" cellpadding="0"> <tr valign="top"> <td width="250" bgcolor="#666666"> <strong><font color="#FFFFFF">Bitte fügen Sie die Dateien ein!</font></strong> </td> <td bgcolor="#CCCCCC"> </td> </tr> <?php for ($i=1; $i <= $ii; $i++) { echo "<tr valign=\"top\">\n"; echo " <td width=\"250\" bgcolor=\"#666666\">\n"; echo " <strong><font color=\"#FFFFFF\">Datei Nr. $i</font></strong>\n"; echo " </td>\n"; echo " <td bgcolor=\"#CCCCCC\">\n"; echo " <input name=\"file[]\" type=\"file\" id=\"file[]\">\n"; echo " </td>\n"; echo "</tr>\n"; } ?> <tr valign="top"> <td width="250" bgcolor="#666666"> <strong><font color="#FFFFFF">weiter zu Schritt Drei...</font></strong> </td> <td bgcolor="#CCCCCC"> <input name="step3" type="submit" id="step3" value="Schritt 3"> </td> </tr> </table> </form> <?php } break; //Schritt Zwei Ende //--------------------------------------------------------------------------- //Schritt Drei case 3: if (isset ($_POST["step3"])) { //Hier Zählen wir die Dateien. (-1 weil das Array bei [0] beginnt!) $count = (count ($_FILES["file"]["name"]))-1; //Die Schleife um alle Dateifelder zu durchlaufen for ($i = 0; $i <= $count; $i++) { //Um Datei Nr. 1, Datei Nr. 2, usw anzeigen zu können! $a = $i + 1; //Falls kein Error besteht! if ($_FILES["file"]["error"][$i] == 0) { //Falls die Dateien hochgeladen werden konnten $type = explode(".",$_FILES["file"]["name"][$i]); $type = $type[sizeof($type)-1]; if(array_search($type,$erlaubt)) {echo "Nicht erlaubter Dateityp: <font color=red>".$type." -> ".$_FILES["file"]["name"][$i]."</font><br>"; continue;} if (move_uploaded_file($_FILES["file"]["tmp_name"][$i],$upload_dir . "/" . $_FILES["file"]["name"][$i])) echo "Die Datei <b>".$_FILES["file"]["name"][$i]."</b> wurde erfogreich hochgeladen!<br>\n"; else echo "Fehler beim Hochladen der Datei Nr. " . $a . "!<br>\n"; } else echo "Datei Nr. $a Fehler: keine Datei ausgewählt\n<br>"; } } break; //Schritt Drei Ende }
mfg -
Also ich hab den mal bei mir einfach so zum Spaß ausprobiert und er klappt nicht... Wenn ich die Anzahl der Dateien angebe und dann auf Schritt klicke kommt 404: Datei nicht gefunden
-
@Ranglisten:
Dein Script ist ja schön udn gut, aber man soltle nie die Dateiendungen vergleichen, sondern immer nur den Filetype!
Die Dateiendungen sind Betirbssystem abhängig demnach ungenau.
Der Typ der Datei ist in $_FILES['datei']['type']
gespeichert.
¤dit: ich habe das ganze mit einer foreach schleife gelöst. Dann muss man nur dafür sorgen, dass die Dateifelder unterschiedliche namen haben. Fertig ist das ganze.
foreach($_FILES as $key => value)
{
printf "Die momentane Datei ist:" . $_FILES[$key]['name'];
}
Fertig ist.
Beitrag geaendert: 29.12.2006 17:41:14 von adrians -
Es gibt Upload scripte wie sand am Meer...
Einfach mal googlen ;)
Sollte nicht so schwer sein.
Gruss H4nSolo -
Also ich hab den mal bei mir einfach so zum Spaß ausprobiert und er klappt nicht... Wenn ich die Anzahl der Dateien angebe und dann auf Schritt klicke kommt 404: Datei nicht gefunden
hast du auch wirklich mit der maus geklickt`? denn aus einem mir unbekannten grund, funkt es nicht, wenn man dort mit der enter taste weiter will... da kommt ne weiße seite... und mit klicken funkt es bei mir 100%
@adrians:
wenn ich aber den dateityp vergleiche, kann ich doch nur "gruppen" zulassen oder verbieten, oder nicht? also z.b. image und bmp würden doch unter den selben dateityp fallen, oder nich?
und, wieviele dateitypen gibt es denn? ich weiß doch gar nicht, welche es gibt, und demnach kann ich auch nichts eingeben, was zugelassen oder verboten werden soll... verstehst?
bin dir sehr dankbar, wenn mir da n tip gibst.
mfg -
Es gibt abertausende... Beispielsweise
apllication/mx_download
image/jpeg
image/gif
image/png
text/plain
[...]
Man müsste einfach nur suchen. Das ist Betriebssystem unabhängig und. tjaha..das klappt. -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage