2016-06-01 13 views
0

Ich habe die FineUploader Dokumentation durchgesehen und wollte die Community fragen, falls ich sie verpasst habe. Sie müssen Benutzern erlauben, eine CSV-Datei hochzuladen, möchten aber die Kopfzeilen in der CSV-Datei überprüfen, um sicherzustellen, dass sie den Anforderungen entsprechen. Ist das eine Möglichkeit, dies innerhalb der FineUploader-Einstellungen zu tun?FineUploader CSV Header Validierung

So stellen Sie beispielsweise sicher, dass eine von einem Benutzer hochgeladene CSV Spaltenüberschriften mit Vorname, Nachname, Adresse, Telefon enthält. Wenn diese Spaltenüberschriften nicht übereinstimmen, geben Sie eine Fehlermeldung zurück. Vielen Dank!

Antwort

1

Diese Art der benutzerdefinierten Überprüfung ist genau warum custom validation Rückrufe wurden vor einer Weile zu Fine Uploader hinzugefügt. In Ihrem Fall, da Sie Zugriff auf die File oder Blob benötigen, können Sie an onSubmit callback beitragen, die eine Promise zurückgibt. In diesem Rückruf können Sie bestimmen, ob die Datei eine CSV-Datei ist. Wenn dies der Fall ist, können Sie die Datei clientseitig mit FileReader lesen und die Datei analysieren, um festzustellen, ob sie Ihren Anforderungen entspricht. Wenn dies der Fall ist, erfüllen Sie einfach das zurückgegebene Versprechen. Ansonsten lehne es ab. Beachten Sie, dass Sie unter der Datei-ID über die getFile API method Zugriff auf die zugrunde liegenden File oder Blob erhalten können.

+0

Danke Ray für die Erklärung. Mit "Versprechen" meinst du "richtig" oder "falsch" zurück zu geben, richtig? – Kim

+0

Nein, ich meine eine ['Promise'-Instanz] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise). Das Lesen einer Datei ist eine asynchrone Operation - Sie können nicht einfach 'false' oder' true' zurückgeben, da Ihr Callback-Handler zurückkehrt, bevor die Dateileseoperation abgeschlossen ist. Fine Uploader akzeptiert Promissory-Rückgabewerte (auch als "thenable" bezeichnet) für [eine Reihe von Callbacks] (http://docs.fineuloader.com/branch/master/features/async-tasks-and-promises.html). –