2012-12-29 2 views
5

Ich arbeite gerade an einem Dateikonvertierungsprogramm, sobald die Datei hochgeladen wurde, konvertiert sie die Datei in verschiedene Dateiformate (PPT, PDF) Dies wird normalerweise lange dauern, abhängig von der Dateigröße. Da die Dateikonvertierung am Backend stattfindet, möchte ich, dass der Benutzer den Fortschritt der Dateikonvertierung sieht (etwas wie Fortschrittsbalken, zB "52% Datei wird konvertiert"), da ich dem Benutzer den aktuellen Fortschritt anzeigen kann die Dateikonvertierung (das passiert am Backend)? Während der Dateikonvertierung kann ich nur den Status anzeigen (in Zahlen (von der API, die ich verwende))Serverseite - Progress Bar

Ich habe keine Ahnung, wo ich anfangen kann kann jemand einen Einblick oder Ansatz bieten?

+0

http://www.sitepoint.com/html5-javascript-file-upload-progress-bar/ ** in reiner einfacher JS ** ok, es ist für den Upload aber XHR-Anfragen sind Ihre Punkte von Interesse. Andernfalls können Sie die Upload-Leiste anzeigen, und nach dem Upload wird einfach eine Lade-Leiste wie 'Konvertieren Sie Ihre Datei ... Bitte warten' –

+0

Es gibt eine gute Anleitung unter http://tpeczek.blogspot.in/2010/07/ reporting-server-side-operation.html –

+0

@roXon Ich spreche nicht über Datei-Upload-Fortschrittsbalken, was ich meine ist, dass es einen bestimmten Prozess läuft auf dem Backend (Dateikonvertierung) Ich möchte den Fortschritt für den Benutzer zeigen – user962206

Antwort

6

hinzufügen. Wenn Sie Struts2 verwenden, werfen Sie einen Blick auf Execute and Wait Interceptor. Es erstellt einen neuen Thread mit Ihrer Aufgabe, der im Hintergrund ausgeführt wird, während Sie dem Benutzer einen Fortschritt anzeigen können.

In struts.xml Datei hinzufügen execAndWait Interceptor zu Ihrem lang laufenden Aktion und definieren Sie zwei Ergebnisse wait und success.

Sie müssen diese Aktion in Ihrer JSP noch über AJAX oder eine einfache Seitenaktualisierung abfragen.

+0

wird" defaultStack "wirklich benötigt? – user962206

+0

Hmm .. JA. Warum fragst du? –

+0

warum also? wenn ich den defaultStack entferne, warum würde es nicht funktionieren? – user962206

1

Du sagst: During file conversion I am only able to show the status(in numbers(provided by the API I am using))

Was ist diese Zahl? Wie viel Prozent einer Datei werden konvertiert? Wenn dies der Fall ist, müssen Sie nur jQuery UI Bibliothek importieren und .progressbar()

+0

Es ist nicht in Prozent, es ist im Bereich von 1 bis 1000, 1000 ist Wert für die vollständige – user962206

+0

Aber es erhöht sich exponentiell oder ist es eine zufällige Zahl präsentiert einige Phase der Umwandlung? –

+0

es exponentiell exponentiell keine zufällige Zahl – user962206

0

Einfache Lösung: Verwenden Struts2-Jquery-Tag

Und definiert Anzeige auf Ihrem einreichen Tag mit einem GIF-Bild

zB.

`<form action="..."> 
    <s:file ..../> 
    <sj:submit indicator="imgId"> 
</form> 

<img id="imgId" src="images/indicator.gif" alt="Loading..."  
    style="display:none"/> 
    `