Meine Website verfügt über eine Funktion, mit der Benutzer Posts (wie Facebook) erstellen können. Ich habe ein Formular mit einem "Message" Eingabefeld und einer Schaltfläche, mit der Benutzer Bilder hochladen können.Senden von Daten nach dem Hochladen von Bildern
Im Moment, wie ich den Code eingerichtet habe, ist, wenn der Benutzer das Formular übermittelt, mein Code die Daten zuerst einreichen und dann die Bilder hochladen.
Das Problem dabei ist, dass, wenn der Benutzer den Bildupload auf halbem Wege abbricht, der Datenbankeintrag existiert (weil die Daten vor dem Hochladen des Bildes übermittelt wurden), aber keine Bilder hochgeladen werden.
Also meine Lösung ist, die Bilder zuerst hochzuladen und die Daten danach zu übermitteln. Das Problem dabei ist, dass ich nicht sicher bin, wie ich die Bilder an die Daten in einem Datenbankeintrag binden kann.
Soll ich alle Bilder auf /tmp
laden und dann die Dateien in einem permanenten Verzeichnis verschieben, wie /var/www/html/website/public/img/uploads/<upload_id>
wo upload_id
die id
der Datenbank-Datensatz ist?
Was soll ich tun, wenn der Benutzer ein Bild hochlädt, aber die Registerkarte halb schließt. Dann wird es ein Bild in /tmp
geben, das für immer dort bleiben wird, wenn das Verzeichnis nicht bereinigt wird. Wie würde ich es aufräumen?
Ist dies der beste Weg, oder gibt es bessere Möglichkeiten?
Ich benutze Laravel 5.3 und Dropzone.js.
Danke.
Bitte lesen Sie meine Frage erneut. Ich suche nicht nach dieser Art von Lösung. – user7315267
Okay, wenn Sie die Lösung nicht ändern möchten, sollten Sie Bilder in der Vorschau anzeigen, ohne zu speichern. Ich denke, dieser Beitrag wird hilfreich sein - http://stackoverflow.com/questions/4459379/preview-an-image-before-it-is-uploaded. Mit der Vorschau Wenn der Benutzer das Formular schließt, wird das Bild nicht in der Datenbank und auf dem Speicherplatz gespeichert. Und wenn der Benutzer die Formulardaten bestätigt - sollten Sie das Bild hochladen und ein Formular auf eine Weise bestätigen, die ich unten geschrieben habe. –