WebWork Magazin - Webseiten erstellen lassen, Online Medien, html

Webhoster, Webhosting Provider und Domain registrieren

Home | Registrieren | Einloggen | Suchen | Aktuelles | GSL-Webservice | Suleitec Webhosting
Reparatur-Forum | Elektro forum | Ersatzteilshop Haushalt und Elektronik



Im Homepage und Webhosting-Forum --- Multiple File Uploads

Scripte und Programme für PHP, MYSQL. Diskussionen zur Programmierung im Web. Fragen zu CMS, Blogsoftware, Shops, Newsletter und vielen weiteren Scripten.

Forum » PHP & MySQL » Multiple File Uploads - 22 Jan 2021 Antworten
im Forum für Webhosting Homepage gefunden:
Multiple File Uploads
Karabear
Pixelschubser
Threadstarter




Beiträge: 16

Hi,

So, nun kommt es heute endlich zu meinem ersten Post. Nachdem ich seit ein paar Wochen Euer Forum verfolgt habe, habe auch ich jetzt mal eine Frage:

Und zwar wollte ich mehrere Dateiuploads gleichzeitig haben. Man muss nur bei den verschiedenen Input-Feldern den gleichen "name" + zwei []-Klammern dahinter verwenden, dann steht ein Array $_FILES['userfile'], wobei userfile der Input-Name ist, zur verfügung. Dazu lasse ich dann ein Script mit einer for-Schleife durch das Array laufen und kopiere die einzelnen files in ein Zielverzeichnis.

Für den Schleifendurchlauf lasse ich von 0 bis count($_FILES['userfile']) durchlaufen. Count sollte die Einträge des Arrays zählen. Das Problem ist jetzt, dass er das nur tun sollte aber nicht tut. Er zählt bei 3(!!) Input-Feldern 4(!) Einträge!

Weiss jemand was darüber? Ist das vielleicht ein Bug?
Danke schon mal im Vorraus,

Kara

  Profil   Website   Editieren   Zitieren
NetDrag
Foren-Team




Beiträge: 456

ein array mit 4 einträgen hat die einträge von 0-3 also muß so gezählt werden:

for ($i=0;$i {
....
}


---
We are born wet, naked and hungry, then things got worse!

  Profil   Website   Editieren   Zitieren
Karabear
Pixelschubser
Threadstarter




Beiträge: 16

Mein Quelltext sieht folgendermassen aus:

for ($i=0; $i < count($_FILES['userfile']); $i++) {
if (is_uploaded_file($_FILES['userfile']['tmp_name'][$i])) {
copy($_FILES['userfile']['tmp_name'][$i], $targetPath.$_FILES['userfile']['name'][$i]);
} else {
echo "File ".$_FILES['userfile']['name'][$i]." could not be found...";
}
}

Das bei 4 Einträgen die Indizes von 0-3 gehen ist mir schon klar, das ist ja nicht das Problem. Auch sizeof ergibt den Wert 4, obwohl das Array NUR 3 Einträge haben dürfte. Es gibt schliesslich auch nur 3 Input-Felder. Versteh ich nicht...

Greets, Kara

  Profil   Website   Editieren   Zitieren
Karabear
Pixelschubser
Threadstarter




Beiträge: 16

Ahoi nochmal,

Vielleicht interessiert es ja jemanden, ich habe das Problem eben anders gelöst. Keine Ahnung wo das Problem lag. Ich mach das ganze jetzt mit einer While-Schleife... ist zwar nicht ganz so schön, funtzt dafür aber ordentlich:

$i = 0;
while (!empty($_FILES['userfile']['name'][$i])) {
...
$i++;
}

Vielleicht weiss ja noch jemand ne andere Möglichkeit...

MfG, Kara

  Profil   Website   Editieren   Zitieren
slackerbitch
Otto-Normal-Poster




Beiträge: 69

schau mal hier nach, ganz unten (beitrag von j.h.westerATplanetDOTnlHATESSPAM am 03-Oct-2002 12:57).
http://www.php.net/manual/sk/printwn/features.file-upload.php

das sollte helfen.

_________________
sig



---
sig

  Profil   Website   Editieren   Zitieren
Karabear
Pixelschubser
Threadstarter




Beiträge: 16

Also erst mal Danke für die Hilfe aber jetzt geh ich mich erst mal eingraben...
Ich hab mir das angeschaut und es lag nicht am upload-Limit oder so sondern an einem ganz einfachen Tippfehler oder Denkfehler beim Ansprechen des Arrays in der for-Schleife:

STATT: for ($i=0; $i < count($_FILES['userfile']); $i++)
sollte man schon: for ($i=0; $i < count($_FILES['userfile']['name']); $i++)
(oder ein ähnliches Attribut) nehmen, sonst bleibt man halt einfach eine Ebene zu niedrig.

Ich bin drauf gekommen, weil er immer 4 Einträge hatte, egal wieviele Input-Felder es waren. Dann bin ich drauf gekommen, dass die 4 Einträge was ganz anderes sind:

tmp_name
name
type
size

Ok, jetzt dürft ihr mich alle schlagen... Jetzt geht es wenigstens!

  Profil   Website   Editieren   Zitieren
slackerbitch
Otto-Normal-Poster




Beiträge: 69

geht nicht einfach $_FILES zum zaehlen?

_________________
sig



---
sig

  Profil   Website   Editieren   Zitieren
Karabear
Pixelschubser
Threadstarter




Beiträge: 16

@slackerbitch

Ein count auf $_FILES ergibt 1, ist auch klar, denn es gibt ja nur "userfile"...

Greets, Kara

  Profil   Website   Editieren   Zitieren
slackerbitch
Otto-Normal-Poster




Beiträge: 69

deswegen nimmt man ja userfile[] und dann sollte es mit $_FILES gehen.
z.b. ueber $_FILES["userfile"]["name"][$i] ansprechbar.

wenn du nur userfile als input-namen nimmst, kannst du ja keine multiplen uploads bekommen, weil immer wieder ueberschrieben wird.
oder bin ich jetzt daneben?


---
sig

  Profil   Website   Editieren   Zitieren
Karabear
Pixelschubser
Threadstarter




Beiträge: 16

Nein, da hast du schon Recht, ohn [] gehts nicht. Ich hab als input name sowieso schon userfile[], sonst würde er ja nur die erste datei hochladen. Aber ein count auf $_FILES ergibt 1, weil man ja noch andere inputs mit anderen namen haben könnte, die dann auch in $_FILES gespeichert werden.

Und per $_FILES["userfile"]["name"][$i] greife ich dann auf die einzelnen files zu.

Ich versuch hier mal irgendwie die Reihenfolge darzustellen:

1. Ebene: $_FILES
2. Ebene: userfile
3. Ebene: tmp_name, name, type, size
4. Ebene: xyz, bild1.jpg, image/jpeg, 12345

Ein Baum oder so wär schön gewesen, aber das geht hier nicht so ganz...
Hoffe Du kannst Dir darunter etwas vorstellen

Greets, Kara


  Profil   Website   Editieren   Zitieren
 

Antworten
Forum » PHP & MySQL » Multiple File Uploads

Aktuelle Beiträge zur Hilfe im Forum für Homepage - Multiple File Uploads im Forum Homepage Hosting AntwortenLetztes Posting
migrierter WP-Blog läuft nicht ...
in "PHP & MySQL"
1 21.01.2021 09:59 von thewellco88
Empfehlen Sie mehrere Optionen
in "PHP & MySQL"
4 21.01.2021 04:50 von yuning
Re: HH
in "PHP & MySQL"
0 19.01.2021 13:17 von bestgoods8
Buy verified European /US /UK passport, id cards,visas,driver's license (whatsapp : +237673528224) 
in "PHP & MySQL"
0 14.01.2021 09:01 von Royalty
Wo kann man 2020 am besten Geld aufbewahren?
in "PHP & MySQL"
2 13.01.2021 17:16 von Laurena
SEO-Dienste
in "PHP & MySQL"
6 13.01.2021 16:58 von Laurena
Vegetarismus in unserem Leben
in "PHP & MySQL"
2 13.01.2021 15:56 von Laurena
migrierter WP-Blog läuft nicht ...
in "PHP & MySQL"
1 25.12.2020 04:13 von vvj04350
Print view MySQL Database Install problems?
in "PHP & MySQL"
2 17.12.2020 09:18 von harmonxjim33
how to get reviews on amazon
in "PHP & MySQL"
0 13.12.2020 01:01 von Lerit
Comment choisir le robinet baignoire Homelody?
in "PHP & MySQL"
0 04.12.2020 08:00 von homelody
Helfen Sie, einen guten Klempner zu finden
in "PHP & MySQL"
1 28.10.2020 09:09 von MEDUZA
The river flows eastward
in "PHP & MySQL"
0 20.10.2020 09:31 von inging
Poolpumpe
in "PHP & MySQL"
2 29.09.2020 05:39 von menubook
Sag mir einen Nebenjob im Internet
in "PHP & MySQL"
3 26.09.2020 10:18 von andyy



Besucher : 7000445    Heute : 249     Gestern : 1020     Online : 20     22.1.2021    8:10      1 Besucher in den letzten 60 Sekunden        
alle 60.00 Sekunden ein neuer Besucher
Nach oben