[PHP-JS] Probleme avec ma barre de progression sous IE
Bonjour
J'ai fait une barre de progression qui permet de savoir où l'upload en est lorsqu'on upload un fichier.
Elle marche très bien avec firefox mais pas avec IE.
IE ne me renvoie aucune erreur et fait régulièrement les rafrachissement, sauf que la barre ne bouge pas.
Voici le code du formulaire (index.php):
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| <html>
<head>
<script src = "scriptaculous"></script>
<script src = "prototype.js"></script>
<script src = "script.js"></script>
<link rel="stylesheet" type="text/css" href="style.css"/>
</head>
<body>
<form enctype="multipart/form-data" id="upload_form" action="" method="POST">
<input type="hidden" name="APC_UPLOAD_PROGRESS" id="progress_key" value="<?php echo uniqid()?>"/>
<input type="file" id="test_file" name="test_file"/><br/>
<input type="submit" onclick="alert($('progress_key').value);progress($(progress_key).value);" value="Upload!"/>
<!--<input type="button" onclick="test($(progress_key).value);" value="affiche"/> -->
</form>
<div class = "barre" id = "barre">
<div class = "progressBar" id = "progressBar"></div>
</div>
</body>
</html> |
Le code javascript:
Code:
1 2 3 4 5 6 7 8
| function progress(id) {
elementHTML = document.getElementById('progressBar');
var url = "toto.php?id="+id;
//alert(url);
o_o = new Object();
o_o = {method:'get',frequency:1,asynchronous:true};
var laRequete = new Ajax.PeriodicalUpdater(elementHTML,url,o_o);
} |
Le code de test.php (appelez par la fonction progress de javascript):
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| <?php
// print_r(apc_fetch("upload_$_GET[id]"));
$tab = apc_fetch("upload_$_GET[id]");
if(isset($tab['total'])) {
if($tab['total'] == 0){
//$tab['total'] = 1;
$pourcentage = 1;
}
else {
$pourcentage = round(($tab['current'] / $tab['total']) * 100);
}
}
else {
die('fatal error!');
}
echo "<img src=\"test.php?pourcentage=".$pourcentage."\"/>";
?> |
Voici le code test.php (permet de générer l'image rectangle de ma barre de progression):
Code:
1 2 3 4 5 6 7 8 9 10 11
| <?php
$pourcent = $_GET['pourcentage'];
header("Content-type: image/png");
$x = $pourcent*2; //largeur de mon image en PIXELS uniquement !
$y = 15; //hauteur de mon image en PIXELS uniquement !
$image = imagecreatetruecolor($x,$y);
$couleur = imagecolorallocate ($image, 36, 93, 219);
imageFilledRectangle($image, 0, 0, $x, $y, $couleur);
imagepng($image); //renvoie une image sous format png
imagedestroy($image); //detruit l'image, liberant ainsi de la memoire
?> |
Voila
Merci :)