2017-10-03 2 views
1

Ich bin Neuling Laravel. Ich habe ein Formularregister und enthalten Feld ist Avatar und einige Felder müssen validiert werden. Ich lade Bild von meinem Computer, aber wenn ich Formular sende, wenn einige Felder nicht bestanden validieren dann Bilddatei verloren. Wie kann ich alte Bilder hochgeladen halten? Mit Textfeld, kann ich alte() Funktion verwenden, um alten Wert zu erhalten, aber mit Eingabedatei weiß ich nicht, wie man Wert behält, wenn Form nicht bestanden validiert.Wie kann ich alten Wert Bild in Laravel

(Haben Sie einen Vorschlag: mit Ajax legen Wert auf Sitzung, wenn Eingabedatei ändern ...)

Leider mein Englisch Geschick nicht gut, Sie Danke.

Antwort

0

Nein, die Dateieingabe kann nicht von Laravel oder einer anderen Software vorbelegt werden. Ihre Website (und jede Website) kennt den lokalen Pfad zur Datei nicht und sollte diesen nicht kennen. Stellen Sie sich die Sicherheitsrisiken vor, wenn sie es taten! Sie könnten einen Benutzer dazu bringen, seinen privaten SSH-Schlüssel oder etwas hochzuladen.

Sie müssen die hochgeladene Datei unabhängig davon verarbeiten, selbst wenn Validierungsfehler vorliegen.

Dann könnten Sie es entweder in Ihrer Datenbank mit einem ausstehenden Status speichern oder ihm einen eindeutigen Hash zuweisen, wobei ein passender Hash in der Benutzersitzung gespeichert wird. Der Punkt ist, in der Lage zu sein, unvollständige Uploads zu identifizieren, die zu diesem bestimmten Benutzer gehören.

Wenn Sie das Formular anzeigen, rufen Sie diese unvollständigen Dateien entweder aus der Sitzung oder aus der Datenbank ab und zeigen das Thumbnail neben dem Dateiupload an. Dies sagt dem Benutzer, dass er diese Datei nicht erneut hochladen muss. Stellen Sie nur sicher, dass sie auch entfernt werden können, falls sie ihre Meinung geändert haben.

Sobald das Formular korrekt übermittelt wurde, löschen Sie den Sitzungshash oder aktualisieren Sie den Datenbankstatus, um den Vorgang abzuschließen. was immer du tun musst.

Andrewtweber Beantwortet Sehr gut Also ich klebte here.Credit ihm geht Ref: Laravel 5.1: keep uploaded file as old input

Verwandte Themen