php.de

Zurück   php.de > Webentwicklung > JavaScript, Ajax und mehr

JavaScript, Ajax und mehr dynamisches Scripten und Interaktion auf Clientebene

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 04.10.2010, 20:06  
Neuer Benutzer
 
Registriert seit: 10.09.2010
Beiträge: 16
PHP-Kenntnisse:
Fortgeschritten
siggi67 befindet sich auf einem aufstrebenden Ast
Standard Uploadanzeige mit PECL und Ajax

Hallo,
hab da mal folgendes Problem mit meiner Progressbar mit PECL Uploadprogress.
Das Script läuft soweit echt gut.
Da ich aber auf dem Land wohne, habe ich nur eine Internetverbindung mit ca. 360 kb.
Somit dauern die Uploads von größeren Daten extrem lange.

Habe es gestern und heute schon mal gestet und festgestellt, das die Anzeige
immer nach einer Weile einfach stehen bleibt. Der Upload läuft aber weiter.
Hier der Code aus der Formularseite:
PHP-Code:
<!--ab hier alle daten für den ladebalken mit pecl-->
<script type="text/javascript">
var xmlHttp = null;
var work = 0;
var stamp;
if (window.ActiveXObject)  {
        try {
                xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
        } catch(e) {
                try {
                        xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
                } catch (e) {
                }
        }
} else if (window.XMLHttpRequest) {
        try {
                xmlHttp = new XMLHttpRequest();
        } catch (e) {
        }
}

var uploadID = '<?php echo $id?>';


function $(obj) {
    return document.getElementById(obj);
}

function updateProgress() {
    stamp = new Date() * getRandom();
    if (work == 0) {
        work = 1;
        xmlHttp.open('GET', './ajax.php?id=' + uploadID + "&" + stamp, true);
        xmlHttp.onreadystatechange = reloadProgress;
        xmlHttp.send(null);
    } else setTimeout("updateProgress()", 100);
}

function reloadProgress() {
    if (xmlHttp.readyState==4) {
        work = 0;
        text = xmlHttp.responseText;
        var upload = eval("("+text+")");
        if (upload["percent"] < 100) {
            $('progress').style.display="block";
            $('progressbar').style.width = upload["percent"] + "%";
            $('uploadFileName').innerHTML = upload["file"];
            $('uploadedBytes').innerHTML = upload["uploaded"];
            $('uploadTotalBytes').innerHTML = upload["total"];
            $('uploadUnit').innerHTML = upload["unit"];
            $('uploadPercent').innerHTML = upload["percent"];
            $('uploadSpeed').innerHTML = upload["speed"];
            $('uploadTimeLeft').innerHTML = upload["left"];
            $('uploadzeit').innerHTML = upload["zeit"];

            setTimeout("updateProgress()", 1000);
        } else $('progress').style.display="none";
    }
}

function getRandom() {
        return parseInt(Math.random()*1000000)+1;
}
</script>
siggi67 ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 05.10.2010, 00:24  
Erfahrener Benutzer
 
Registriert seit: 28.05.2008
Beiträge: 2.094
PHP-Kenntnisse:
Fortgeschritten
rudygotya ist einfach richtig nettrudygotya ist einfach richtig nettrudygotya ist einfach richtig nettrudygotya ist einfach richtig nettrudygotya ist einfach richtig nett
Standard

Welches Framework verwendest du denn? Prototype?
Aber eigtl. egal, welches Framework, benutz doch deren Ajax Implementierung Gibts nen Fehler in der Konsole? Überschreibst du evtl irgendwo dein globales xmlHttp ?
__________________
++++ Wieder einer ins Netz gegangen: Phishers Fritz zufrieden ++++
Blog
rudygotya ist offline   Mit Zitat antworten
Alt 09.10.2010, 09:33  
Neuer Benutzer
 
Registriert seit: 10.09.2010
Beiträge: 16
PHP-Kenntnisse:
Fortgeschritten
siggi67 befindet sich auf einem aufstrebenden Ast
Standard

Auf dem Server ist ZEND drauf.
Aber das spielt keine Rolle, da es nicht zum Einsatz kommt.

Nach einem weiteren habe ich den Fehlerpart gefunden:
Es kommt im IE 8 eine Syntaxfehlermeldung für folgende Zeile:
PHP-Code:
var upload = eval("("+text+")"); 
Kann mir jemand weiterhelfen?
siggi67 ist offline   Mit Zitat antworten
Alt 09.10.2010, 11:14  
Erfahrener Benutzer
 
Registriert seit: 23.08.2010
Beiträge: 495
PHP-Kenntnisse:
Fortgeschritten
mimomamu sorgt für eine eindrucksvolle Atmosphäremimomamu sorgt für eine eindrucksvolle Atmosphäre
Standard

Der Server sendet anscheinend kein gültiges JavaScript als Antwort auf den XMLHttpRequest.
__________________
Meinungen, die ich geäußert habe, sind nicht notwendigerweise meine eigenen. Abweichungen von der deutschen Rechtschreibung unterliegen dem Urheberrecht, dürfen aber unter den Bedingungen von verwendet werden
mimomamu ist offline   Mit Zitat antworten
Alt 09.10.2010, 11:47  
Neuer Benutzer
 
Registriert seit: 10.09.2010
Beiträge: 16
PHP-Kenntnisse:
Fortgeschritten
siggi67 befindet sich auf einem aufstrebenden Ast
Standard

ja ist schon klar.
Aber warum läuft das Script über mehrere Stunden einwandfrei und dann
plötzlich nicht mehr?
siggi67 ist offline   Mit Zitat antworten
Alt 09.10.2010, 12:00  
Erfahrener Benutzer
 
Registriert seit: 23.08.2010
Beiträge: 495
PHP-Kenntnisse:
Fortgeschritten
mimomamu sorgt für eine eindrucksvolle Atmosphäremimomamu sorgt für eine eindrucksvolle Atmosphäre
Standard

Ich vermute mal weil ach Mist, meine Glaskugel ist kauptt gegangen. Du wirst wohl das Script rausrücken müssen, das den XMLHttpRequest beantwortet.
__________________
Meinungen, die ich geäußert habe, sind nicht notwendigerweise meine eigenen. Abweichungen von der deutschen Rechtschreibung unterliegen dem Urheberrecht, dürfen aber unter den Bedingungen von verwendet werden
mimomamu ist offline   Mit Zitat antworten
Alt 09.10.2010, 12:41  
Neuer Benutzer
 
Registriert seit: 10.09.2010
Beiträge: 16
PHP-Kenntnisse:
Fortgeschritten
siggi67 befindet sich auf einem aufstrebenden Ast
Standard

Hab kein Problem damit das Script zu zeigen:
Hier die ajax.php
PHP-Code:
<?php
header
("Content-Type: application/x-json");

$id $_GET["id"];
$info uploadprogress_get_info($id);

if (!
$info) die("{}");

$name $info["filename"];
$speed number_format(($info["speed_average"] / 1024), 1","".");
$percent intval(100 $info["bytes_uploaded"] / $info["bytes_total"]);
$time_left_2 $info["est_sec"];
$total $info["bytes_total"];
$uploaded $info["bytes_uploaded"];

if(
$time_left_2 >= 60)    {
    
$time_left $time_left_2 60;
    
$time_left round($time_left,0);
    
$zeit "Minuten";
    }
else    {
    
$zeit "Sekunden";
    
$time_left $time_left_2;
}

if (
$total >= (1024*1024)) {
    
$unit "MB";
    
$total $total / (1024*1024);
    
$uploaded $uploaded / (1024*1024);
} else {
    
$unit "kB";
    
$total $total 1024;
    
$uploaded $uploaded 1024;
}

$uploaded number_format($uploaded1","".");
$total number_format($total1","".");

echo 
'{"file":"'.$name.'","percent":'.$percent.',"uploaded":"'.$uploaded.'","total":"'.$total.'","unit":"'.$unit.'","speed":"'.$speed.'","left":"'.$time_left.'","zeit":"'.$zeit.'"}';
?>
Die Auswertung in der Formularseite:
PHP-Code:
<div id="progress"><h2>
    <
strong>Dateiupload: <span id="uploadFileName"></span></strong><br />
    <
div id='progressbarWrapper'>
        <
div id='progressbar' style='width:0%;'>&nbsp;</div>
        <
div id='progressbarInfo'>
            <
span id="uploadedBytes"></span> / <span id="uploadTotalBytes"></span> <span id="uploadUnit"></span> (<span id="uploadPercent"></span> %)
        </
div>
    </
div>
    <
strong>Geschwindigkeit: <span id="uploadSpeed"></spankB/s<br />
    
Gesch&auml;tzte Dauer ca.: <span id="uploadTimeLeft"></span> <span id="uploadzeit"></span></strong>
</
div
Der Rest steht ja bereits ganz oben im ersten Beitrag.
siggi67 ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Fileupload via AJAX GSJLink HTML, Usability und Barrierefreiheit 13 17.05.2012 21:41
[Erledigt] Web-Präsentation mit AJAX bbskater JavaScript, Ajax und mehr 3 24.09.2010 15:11
Ajax - Dynamic Content mit JS in DIV laden nickBee HTML, Usability und Barrierefreiheit 8 30.07.2010 14:46
geht das mit Ajax? sofortige umsetzung für den User bei externen Stylesheet strgg PHP Tipps 2010 12 08.07.2010 14:17
Ajax Anwendung, reines Ajax oder Ajax und Html jackie1983 JavaScript, Ajax und mehr 5 09.02.2010 16:50
AJAX - Variable von PhP erhalten auf möglichst simple Weise? SplitterWind JavaScript, Ajax und mehr 10 10.01.2010 04:34
Wie lade ich ein Javascript nach einer AJAX Abfrage neu? da.eXecutoR JavaScript, Ajax und mehr 3 21.09.2009 11:15
Ajax und include reloaden choice JavaScript, Ajax und mehr 6 10.07.2009 13:47
1111: AJAX meets PHP (indirectly) Nikolaus 2.0 Adventskalender 2008 5 15.12.2008 11:00
Ajax Formular problem mit eingabe themonk JavaScript, Ajax und mehr 2 01.11.2008 20:25
Probleme mit Sonderzeichen bei Ajax (prototype)... go1denboy JavaScript, Ajax und mehr 1 31.08.2008 18:44
AJAX: Session-Inhalt an PHP Curanai HTML, Usability und Barrierefreiheit 2 05.11.2007 15:45
AJAX open mit POST und GET DonTermi HTML, Usability und Barrierefreiheit 5 04.10.2007 18:22
Ajax bild.php aktualisieren M3g4Star HTML, Usability und Barrierefreiheit 3 09.03.2007 17:14
Ajax und Sonderzeichen? GSJLink HTML, Usability und Barrierefreiheit 1 11.11.2006 14:36

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
http://www.php.de/javascript-ajax-und-mehr/72505-uploadanzeige-mit-pecl-und-ajax.html, pecl upload, $info = uploadprogress_get_info($_get[\'id\']) geht nicht, uploadprogress_get_info php, php upload zeit anzeigen, upload geschwindigkeit anzeigen ajax, javascript upload anzeige, upload anzeige, php progress upload pecl tutorial, ajax upload speed, php uploadprogress_get_info return null, uploadprogress pecl ajax, pecl uploadprogress ajax, javascript upload progress pecl, \ajax\ datei uploaddauer anzeigen, pecl upload script, ladebalken zend upload, pecl upload progress script, file upload pecl tutorial, ajax fileupload progress ohne pecl

Alle Zeitangaben in WEZ +2. Es ist jetzt 10:03 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum