[PHP] Fileupload Problem

Yo Mr. White

Lieutenant
Registriert
Mai 2005
Beiträge
1.023
Hallo,

ich möchte ein oder mehrere Files mittels PHP-Fileupload hochladen. Ich habe mir diese Beschreibung angesehen, nur stehe ich bei der Arrayverarbeitungsweise etwas auf dem Schlauch.

Ich habe folgendes im HTML:
Code:
<input name="jpg["1"] type="file" size="50" />
<input name="jpg["2"] type="file" size="50" />
<input name="jpg["3"] type="file" size="50" />
für z.B. 3 Files

Hier mein PHP: ($ident übergibt in dem Fall 1, 2 oder 3)
PHP:
function fileupload($ident) {
  if (isset($_FILES['jpg'][$ident])) {
    foreach ($_FILES['jpg'][$ident] as $key => $value) {
      $uploaddir = $_SERVER['DOCUMENT_ROOT'].'/testfolder/';
      if (is_uploaded_file($_FILES['jpg']['tmp_name'][$ident])) {
        echo $key;
        echo $value;
        move_uploaded_file($_FILES['jpg']['tmp_name'], $uploaddir . $_FILES['jpg']['name']);
      }
    }
  }
}

So klappt das nicht, nur weiß ich nicht warum. Die Funktion bekommt nacheinander die 1, 2, 3 übergeben und soll dann die richtigen Files uploaden.


Ohne die Arrayverarbeitungsweise habe ich den Fileupload auch schon hinbekommen.
 
Du musst das name-Attribut natürlich wieder schließen. Da fehlen die Double-Quotes (") am Ende. Außerdem solltest Du dann innerhalb des Attributwertes nur Single-Quotes (') verwenden.
Code:
<input name="jpg['1']" type="file" size="50" />

Ansonsten versuch's mal nur mit diesem HTML-Code:
Code:
<input name="jpg" type="file" size="50" />
<input name="jpg" type="file" size="50" />
<input name="jpg" type="file" size="50" />
Das funktioniert bei Checkboxen so, wenn man mehrere Alternativen zulassen möchte. Man erhält automatisch ein Array mit den angekreuzten Werten. Eventuell funktioniert das bei Dateien genau so.
 
Hi,

das Name Attribut ist geschlossen, ist nur beim kopieren verloren gegangen.
Verschiedene Checkboxen habe ich ein wenig weiter oben in meinem Code schon abgefragt das funktioniert auch, nur halt diese Filearray wollen nicht so recht.
 
>> das Name Attribut ist geschlossen, ist nur beim kopieren verloren gegangen.

Wie sieht es denn jetzt genau aus?
So: name="jpg["1"]"? Das wäre nämlich immer noch falsch, selbst wenn es geschlossen ist. Du darfst nicht einfach so doppelte Anführungszeichen ineinander verschachteln. Das muss schon so aussehen, wie Prypjat es bereits geschrieben hat: name="jpg['1']".

Nebenbei: Ich bin mir nicht sicher, ob das name-Attribut überhaupt Sonderzeichen enthalten darf. Wäre auch gut möglich, dass es nur Buchstaben und Ziffern enthalten darf, wenn man die Werte mit PHP weiterverarbeiten möchte.

EDIT: Wie ich es vermutet habe:
Der Wert eines solchen Attributs muss mit einem Buchstaben A-Z oder a-z beginnen, und darf in der weiteren Zeichenkette ebenfalls nur Buchstaben A-Z und a-z, Ziffern 0-9, Bindestriche (-), Unterstriche (_), Doppelpunkte ( : ) und Punkte (.) enthalten. Nicht erlaubt sind Sonderzeichen, Leerzeichen oder andere Interpunktionszeichen.
 
Zuletzt bearbeitet:
Zurück
Oben