PHP merkt sich den Inhalt des Dateifeldes

8

Ich habe ein Formular mit Texteingaben und Dateieingaben; Die Textfelder werden validiert. Gibt es eine Möglichkeit, sich das Formular merken zu lassen, welche Dateien der Benutzer bereits ausgewählt hat, wenn sie auf "Senden" klicken, aber zurückgehen müssen, weil eines der Textfelder nicht validiert wurde?

    
roflwaffle 25.08.2009, 07:52
quelle

3 Antworten

16

Sie können den Inhalt eines Datei-Upload-Feldes aus Sicherheitsgründen nicht "vorfüllen". Das würde auch bedeuten, dass die Datei jedes Mal neu hochgeladen wird, wenn das Formular gesendet wird, was nicht gut wäre.

Tun Sie das stattdessen:

  • Erstellen Sie ein Datei-Upload-Feld mit dem Namen file_upload .
  • Verarbeiten Sie auf der Serverseite den Upload in jedem Fall, auch wenn der Rest der Formularvalidierung fehlschlägt.
  • Wenn die Formularüberprüfung fehlgeschlagen ist, die Datei jedoch hochgeladen wurde, fügen Sie eine versteckte Eingabe in das Formular mit dem Namen file ein, der den Namen der gerade hochgeladenen Datei enthält.
  • Zeigen Sie eine vom Benutzer sichtbare Anzeige an, dass die Datei in Ordnung ist. Wenn es sich um ein Bild handelt, zeigen Sie eine Miniaturversion davon an. Wenn es sich um eine andere Datei handelt, zeigen Sie den Dateinamen und / oder das Symbol an.
  • Wenn der Benutzer eine andere Datei in das Feld file_upload hochladen möchte, verarbeiten Sie den Upload und speichern Sie den neuen Wert in file .

Pseudocode:

%Vor%

Wichtiger Hinweis

Dieser Mechanismus kann es jedem Benutzer erlauben, die Dateien anderer Benutzer als seine eigenen zu beanspruchen, indem er einen file Namen einfügt, von dem er vermutet hat, dass er auf Ihrem Server existiert. Sie sollten sicherstellen, dass hochgeladene Dateien eindeutig mit einem bestimmten Benutzer verknüpft sind, um dieses Problem zu vermeiden.

    
deceze 25.08.2009, 08:11
quelle
-1

Dateien Eingabefelder sind schreibgeschützt Sie können keinen Anfangswert für sie festlegen

    
mck89 25.08.2009 07:56
quelle
-1

Sie können die Dateien trotzdem hochladen und die Dateinamen anstelle des Dateiauswahlfelds anzeigen. Um sich an die Felder zu erinnern, können Sie eine Variable $ _SESSION verwenden.

    
Fu86 25.08.2009 07:57
quelle

Tags und Links