Dateien mit flow.js + ng-flow nach WebAPI 2 hochladen

8

Ich versuche, flow.js ( Ссылка ) über den Angular Wrapper ( Ссылка ), um Dateien auf einen ASP.NET WebAPI 2 Server hochzuladen. Jedenfalls, wenn ich eine Datei wähle, um meine WebAPI hochzuladen, bekomme ich nur die erste Chunk GET Anfrage und dann passiert nichts: kein POST ist gemacht, und es scheint, dass flow.js den Upload nicht gestartet hat.

Der erste GET-Befehl wurde ausgelöst, wenn ich eine Datei auswähle:

%Vor%

Und die Antwort ist:

%Vor%

Dann werden keine weiteren Anfragen mehr ausgegeben.

Wie es scheint, gibt es kein aktuelles WebAPI-Beispiel, sondern nur vereinzelte Posts, ich habe für Neulinge wie mich eine Dummy-Repro-Lösung erstellt, die Sie von Ссылка : Es handelt sich um eine ASP.NET WebAPI 2-Lösung, bei der ich den Upload-Code nach dem Hinzufügen des entsprechenden API-Controllers in der Home-Ansicht platziert habe. Drücken Sie einfach F5 und versuchen Sie, eine Datei hochzuladen. Sie finden den API-Controller in UploadController.cs .

Die relevanten Codeteile sind:

a) Clientseite : Eine Seite, die dem Schnellstartbeispiel der ng-flow-Seite ähnelt:

%Vor%

Der entsprechende Code ist im Wesentlichen ein leeres TS-Skelett mit der Modulinitialisierung:

%Vor%

b) Server-Seite : Ich habe ein Bündel für die erforderlichen Skripts und den folgenden Controller hinzugefügt, der vom Beispielcode, den ich bei So laden Sie Datei in Chunks in ASP.NET mit ng-Flow . Beachten Sie, dass ich in der GET Upload -Methode die Signatur mithilfe eines Bindungsmodells geändert habe (andernfalls erhielten wir 404, da die Route nicht übereinstimmte), und wenn der Chunk nicht gefunden wird, gebe ich einen 202 - Accepted -Code statt 404 zurück. Wie in der Dokumentation von flow.js steht 200 für "Der Chunk wurde akzeptiert und korrekt. Kein Neu-Upload erforderlich", während ein 404 den gesamten Upload abbricht und jeder andere Code (wie 202 hier) den Uploader anweist, es erneut zu versuchen / p> %Vor%     

Naftis 17.04.2015, 08:47
quelle

1 Antwort

5

200 Status ist nicht der einzige, der als Erfolg angesehen wird. 201 und 202 sind auch. Lesen Sie über die Option successStatuses : Ссылка Die einzige Änderung, die Sie brauchen, besteht darin, einen 204-Status zurückzugeben, was No Content bedeutet.

    
Aidas 19.04.2015, 08:42
quelle