apc upload progress gibt erst nach vollständigem upload Array aus

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • apc upload progress gibt erst nach vollständigem upload Array aus

    Habe folgendes Problem, ich versuche für einen Datei upload eine Fortschrittsanzeige zu erstellen mit dem Script
    von dem tutorial von der seite hier ([wiki]Upload Fortschritt mit PHP + AJAX[/wiki]).
    Nur funktioniert das bei mir nicht so ganz. hab schon stunden gegoogelt aber leider ohne Erfolg.
    Das problem ist dass, das Array erst nach dem upload mit den Daten gefüllt ist.
    ich brauche aber logischerweise den apc [current] wert, bevor der upload fertig ist.
    vorher gibt mir das script nur bool(false ) aus.
    nach dem upload dann die ganzen werte die da drin stehen müssten
    da ist dann aber [current]=[total]
    apc einstellungen in der ini sind eigentlich alle richtig.

    hier mal der code wie er bei mir aussieht

    ?>

    Quellcode

    1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
    2. <html xmlns="http://www.w3.org/1999/xhtml" dir="ltr" xml:lang="de">
    3. <head>
    4. <title>APC Upload</title>
    5. <script type="text/javascript">
    6. //<![CDATA[
    7. function ajax(uid) {
    8. var req;
    9. try {
    10. req = window.XMLHttpRequest?new XMLHttpRequest():
    11. new ActiveXObject("Microsoft.XMLHTTP");
    12. } catch (e) {
    13. //Kein AJAX Support
    14. }
    15. req.onreadystatechange = function() {
    16. if ((req.readyState == 4) && (req.status == 200)) {
    17. document.getElementById("status").innerHTML = req.responseText;
    18. }
    19. }
    20. req.open('GET', 'status.php?uid='+ document.forms.dateihochladen.APC_UPLOAD_PROGRESS.value);
    21. req.send(null);
    22. }
    23. //]]>
    24. </script>
    25. </head>
    26. <br><a href="hochladen2.php">hochladen2</a>
    27. <body>
    28. <iframe src="upload.php" name="hidden_upload" border="1px solid"></iframe>
    29. <div id="status"></div>
    30. <form action="upload.php" name="dateihochladen" target="hidden_upload" method="post" enctype="multipart/form-data">
    31. <div>
    32. <input type="hidden" name="APC_UPLOAD_PROGRESS" value="<?php echo uniqid();?>"/>
    33. <input type="file" name="upload" />
    34. <input type="submit" onclick="this.disabled=true; setInterval('ajax(\''+this.form.APC_UPLOAD_PROGRESS.value+'\')', 500); "/>
    35. </div>
    36. </form>
    37. </body>
    38. </html>
    Alles anzeigen



    und hier nochmal der code von der status.php die das array ausgibt was dann im zeitinterval von 0,5 sec abgefragt wird.



    Quellcode

    1. <?php
    2. $arr = apc_fetch("upload_{$_GET['uid']}");
    3. printf("<pre>%s</pre>", print_r($arr,true));
    4. echo json_encode(apc_fetch('upload_' . $_GET['uid']));
    5. $status = apc_fetch('upload_'.$_GET['uid']);
    6. var_dump($status);
    7. $current=$status['current'];
    8. $total=$status['total'];
    9. $prozent=$current/$total*100;
    10. echo "bereits hochgeladen:$current<br><br>";
    11. echo "von insgesamt:$total<br>";
    12. echo "prozent: $prozent%";
    13. $progress_name = ini_get("session.upload_progress.prefix").$_GET['uid'];
    14. echo"prefix: $progress_name";
    15. die;
    Alles anzeigen



    Ich hoffe mein Problem ist verständlich und jemand mir helfen.
    wäre dafür sehr dankbar.