Wenn ich eine Datei mit Krajees Bootstrap Fileinput hochlade, führe ich eine serverseitige Überprüfung der Datei durch. Wenn etwas schief geht, gebe ich ein JSON-Objekt einfach mit {error:'Something went wrong'}
aus. Das Plugin zeigt den Fehler perfekt an.
Aber dann: Wenn ich gleich danach "upload" drücke, ist das $_FILES
-Array im aufgerufenen submit-PHP-Skript leer. Das bedeutet, dass das Plugin die Datei nicht erneut sendet, selbst wenn es eine Fehlermeldung angezeigt hat.
Warum lädt das Plugin die Datei nur einmal hoch, selbst wenn es einen Fehler entdeckt? Gibt es irgendwelche Methoden, die den "hochgeladenen Zustand" der Datei "zurücksetzen" können? (Ich lade nur eine Datei hoch).
Ich habe bereits die Dateiereignisse überprüft, aber keine von ihnen brachte mich zum gewünschten Ergebnis, sondern sie Art der Zerstörung der gesamten Upload-Formular mit bestimmten Schaltflächen deaktiviert werden, und so weiter.
Ich habe schließlich den genauen Punkt herausgefunden, wo das Problem gelöst werden konnte:
Auf Zeile 1705 in der Funktion updateUploadLog , der Die Funktion self.updateStack
wird aufgerufen. Dieser Aufruf löscht den Dateistapel einfach und veranlasst einen späteren Prozess, die Formulareingabe zu leeren. Das einfache Auskommentieren dieser Zeile macht den Trick, aber nur, wenn Sie nach dem Erfolg neu laden, weil fnSuccess
auch irgendwie aufgerufen wird, wenn ein Fehler gefunden wird.
@Angad vielen Dank für Ihre Lösung, die die Eingabe ausgelöst hat, dank der ich einen Platz gefunden habe, um die Suche zu starten wieder;)
Ich sehe, dass das Github-Problem sagt, dass dies zur Zeit nicht unterstützt wird, aber es scheint relativ unkompliziert, dieses Projekt aufzuspalten und es an Ihre Bedürfnisse anzupassen. Alle fnError =
, die Sie in Cmd + F
search in fileinput.js
finden, sind die Orte, an denen Sie suchen müssen.
Nehmen Sie zum Beispiel hier: Ссылка
Dies ist für den Batch-Datei-Upload, der derzeit so aussieht:
%Vor%Ich würde versuchen, dies zu ändern:
%Vor%Hoffe, das hilft!
Tags und Links ajax file-upload twitter-bootstrap asyncfileupload bootstrap-file-upload