Was ich versuche ist, die Datei- / Dateiinformationen mit ajax in upload.php
hochzuladen und dann die gleichen Informationen erneut auf einen entfernten Server hochzuladen, indem ich nach remoteUpload.php
locke. Schließlich führe ich in remoteUpload.php
file den eigentlichen Upload der Datei / Dateien durch.
Beim ersten Schritt - & gt; Lade die Datei- / Dateiinformationen in upload.php
hoch. Ich zeige einen Fortschrittsbalken dieses Schrittes mit Ajax an.
Aber der zweite Schritt - & gt; Laden Sie die gleichen Informationen erneut auf den Remote-Server mit curl to remoteUpload.php
die Fortschrittsleiste wird nicht angezeigt, und das ist mein Problem.
Wie wird der Fortschrittsbalken für den zweiten Schritt von Ajax angezeigt?
Javascript:
%Vor%PHP: (upload.php)
%Vor%PHP: (remoteUpload.php)
%Vor% Sie können in progressCallback()
bis $_SESSION
your $progress
und von js Seite nach "first step" upland complete run setIntevral(/*ajax*/)
make ajax
Anfragen an Server erhalten $_SESSION['progress]
und zweiten Fortschrittsbalken anzeigen ( oder lade den ersten Fortschrittsbalken bis 50% und fahre mit dem Laden der zweiten 50%) in deinem Formular fort und wenn es fertig ist, rufe clearInterval()
DETAILLIERTE ANTWORT
Erläuterung: Wir zählen den Fortschritt in der folgenden Logik. Wenn wir 5 Dateien auf einmal hochgeladen haben (wie in Ihrem Fall scheint, war die hochgeladene Datei), teilen wir 100%
durch 5
und erhöhen um 25%
progress während einer Datei curl submit, dazu benötigen Sie folgende 5 Änderungen
1) rufe irgendwo oberhalb von session_start()
in deinem upload.php
auf, wenn es nicht gemacht wird
2) wird in der Gesamtzahl der Sitzungsdateien und im aktuellen Verarbeitungsdateiindex gespeichert
%Vor% 3) Speichern in progressCallback
function aktuelle Fortschrittszahl in 0-100
format
4) Erstellen Sie eine neue getUploadProgress.php
und geben Sie eine json-codierte Fortschrittsinformation aus der Sitzung
5) Fügen Sie in Ihrem ajax.onreadystatechange
setInteval
Funktionsaufruf hinzu und definieren Sie in Ihrer js globalen Variable progressSetInterval
HINWEIS: Bei der Verwendung dieses Beispielcodes werden natürlich zusätzliche rounds
, JS/PHP functions
Addition, variable Anpassungen oder einige logische Anpassungen für mehr Effektivität benötigt, aber im Grunde ist dies eine Logik von eine Option, die Sie verwenden können
Tags und Links javascript php ajax curl progress-bar