UploadProgressBar lösungs versuch

slick-tang-tang

Grünschnabel
Sorry falls das nicht der richtige ort für den post ist.

UploadBar ohne Ajax oder Perl.
Ich verusche grad es so zu machen.
Der User schickt die Datei los per submit.
Im gleichen mom geht er in ein javascript was ein neues Fenster aufmacht. (Man Muss halt popups für die seite zulassen wenn man ein uploadbar haben will)
Im neuen Fenster läuft ein php script was mir den inhalt des tmp ordners liefert.
Hier wird dann nach einer Datei ,die ein Timestamp ähnlich wie der Timestamp der erstellt wird wenn das script aufgerufen wird, gesucht.
Das Funkt auch nun will ich eine While schleife ein Bauen die solange die filesize in eine Variable schreibt und mir ausgibt wie die Datei gross ist.
Doch da liegt mein Problem er geht in die schleife und kommt erst wieder raus wenn der Datei upload fertig ist und die Datei schon längst aus dem tmp ordner wieder raus ist.
Bzw garnicht mehr raus weil die Datei ja nicht mehr existiert raus kommen tut er nur wenn ich es mit i teste aber auch erst nach dem upload.
Jetzt meine frage geht das so überhaupt oder ist das von vornerein unmöglich?

PS Danke schon mal
 
PHP < 5.2 UNMÖGLICH

PHP hat ohne binäre zusatzmodule kein Zugriff auf die teilweise hochgeladenen Files Da man im regelfall nicht die möglichkeit hat diese PECL Module zu installieren, hier mal ausen vor gehalten.

Für Upload-Progress bars wurden die apc funktionen eingebaut, in den neusten Versionen von PHP. Mit denen lässt sich sowas realisieren ansonsten musst du auf Java / Flash ausweichen.
 
Ä Hä

Allso, ich denke mal du meinst das so, du möchtest dir aktuell noch die derzeitige Dateigröße ausgeben lassen (die auf dem Server beim Upload).

Mit welchen Befehlen arbeitest du denn bei dem Upload?

Und wegen dem Abbrechen, versuch doch mal

PHP:
if(!uploadestream) break;

damit hat sich das wohl erledigt...

oder so.

Lg Mohag
 
Also so wird der upload gemahct

enctype='multipart/form-data'action='moveupload.php?mode=1' method='post'

und dann wir mittels filesize die grösse aufn Server ermittelt die wiederum mit der Grösse verglichen wird von der Datei die upgeloadet wird.
Wenn filesize kleiner ist was ja logo ist weil datei noch ncith ganz aufn server ist while schleife und datei grösse abfragen bis destGrösse erreicht.


PS danke für die schnelle hilfe
 
Zuletzt bearbeitet:
PHP < 5.2 UNMÖGLICH
stimmt nicht ganz, es gibt für die php-versionen dafür einen patch, und genauer dieser floss in php5.2 ein.

Für Upload-Progress bars wurden die apc funktionen eingebaut, in den neusten Versionen von PHP.
APC ist der Alternative PHP Cache und den gab es auch schon davor, laaaaaange davor ;)
Man hat nur ab PHP5.2 die Unterstützung für den Uploadprogress in PHP5.2 eingebaut ;)

Mit denen lässt sich sowas realisieren ansonsten musst du auf Java / Flash ausweichen.
ich bin zwar ein Flash Anhänger aber Flash ist dafür leider müll, es funktioniert zwar aber du bekommst den HTTP-Response von dem Upload nicht zurück, also ist es in den meisten Fällen total unnütz, es sei denn man will wirklich einfach nur in Ordner Dateien hochladen.

PHP:
if(!uploadestream) break;
PHP tritt erst in Aktion wenn der Dateiupload fertig ist ;) Und auch mit den Funktionen in APC kann man meines Wissens keinen Einfluss darauf nehmen.
 
Zurück