FTP Upload-Status

Hookah

Erfahrenes Mitglied
Morgen

ich bastel gerade einen php ftp upload und zwar ruf ich per Button beim Klick mit Hilfe des XMLHTTPRequest Objekts ein PHP Script auf

das Script startet dann mit dem Upload und gibt dann während des uploads noch an
wie viel % schon hochgeladen worden sind.

Das Script schaut so aus :
PHP:
<?php

    session_start();


    $file_name = "Battle_Finale__94_bpm_.mp3";

 

    $_SESSION['file'] = $file_name;






    $ftp = ftp_connect("++++");
    ftp_login($ftp , "+++","+++");


    $fh = fopen ($file_name, "r");

    $ret = ftp_nb_fput ($ftp, $file_name, $fh, FTP_BINARY);

	while ($ret == FTP_MOREDATA) 

	{

	

	$i = (ftell($fh)/filesize($file_name))*100;

      
	 printf("%d%% uploaded<br>", $i);



	$ret = ftp_nb_continue($ftp);

	ob_flush();
	flush();	
	



	


	
        

	}


    if ($ret != FTP_FINISHED) {

        print ("error uploading\n");
        exit(1);

    }


    fclose($fh);

?>


Ruf ich das Script per Button auf wird im DIV, welches die Prozentzahl anzeigen soll,
zwar die Prozente angezeigt aber so :

Code:
0% uploaded
0% uploaded
0% uploaded
0% uploaded
0% uploaded
0% uploaded
0% uploaded
0% uploaded
0% uploaded
0% uploaded
1% uploaded
1% uploaded
1% uploaded
1% uploaded
1% uploaded
1% uploaded

usw

Das selbe kommt auch wenn man das Script direkt im Browser aufruft

Gibt es eine Möglichkeit das immer nur einmal der aktuelle Stand angezeigt wird statt das es wie eine Liste immer weiter geht?

Ich hoffe mir kann wer helfen

guten Morgen noch :)
 
Kannst du nicht prüfen, ob sich "i" seit dem letzten Mal verändert hat und nur dann erneut ausgeben?
Also eine zusätzliche Variable für den letzten Stand anlegen und i damit vergleichen...
 
Klar könnt ich das tun - hat ich auch vor - löst nur mein Problem nicht

Dann würde halt immer

0% uploaded
1% uploaded
2% uploaded
3% uploaded
4% uploaded kommen

und die liste würde immer nach unten fortgesetzt
statt das nur immer die aktuelle Prozentzahl da steht
 
Hi,
Ich find die Lösung schlecht, keine ahnug wie man es noch machen könnte. Wenn jemand einen beseren Vorschlag hat, bitte sagen.

Habe ein Beispiel:

PHP:
<div id="prozent">< 1 %</div>
<?
$i = 0;
while( $i < 100){
$i ++;?><script type="text/javascript">
<!-- 
document.getElementById('prozent').innerHTML = "<? echo $i."%";?>";
//-->
</script> 
<?
}
?>
 
Ich habs mittlerweile gelöst und zwar in dem ich den aktuellen stand des Uploads in einer Tabelle zwischenspeicher und mit einem zweiten Request den aktuellen Prozentsatz auslese


Die lösung ist zwar nicht so schön aber sie funktioniert

wenn noch jemand eine andere Idee hat - immer her damit ;)
 
Klar könnt ich das tun - hat ich auch vor - löst nur mein Problem nicht

Dann würde halt immer

0% uploaded
1% uploaded
2% uploaded
3% uploaded
4% uploaded kommen

und die liste würde immer nach unten fortgesetzt
statt das nur immer die aktuelle Prozentzahl da steht

Oh, Missverständinis, dein Problem habe ich etwas anders verstanden...
Aber wenn's jetzt klappt, dann kannst du das Thema ja als erledigt markieren ;)
 
Zurück