Upload, ma progress-bar ne marche pas du premier coup
Posté : 03 mars 2013, 09:18
Boujour,
J'ai fait un formulaire d'upload avec une progress-bar qui permet d'envoyer un fichier à la fois. J’utilise jQuery.
Mais le souci, c'est que lorsque on upload un premier fichier, ma progress-bar passe directement à 100 % ce qui n'arrive pas pour les tentative suivante. Le premier fichier s'upload pourtant bien mais j'ai remarqué que le array de ce premier upload est vide.
Voici les code :
Formulaire :
Le php de la progress-bar :
[javascript]function upload()
{
$('#progress .bar').html('0%');
$('#progress .bar').width('0%');
$('#upload_form').submit();
setTimeout('checkProgress()',1500);
}
function checkProgress()
{
$.get('progress.php',function(data)
{
var percentage = data +'%';
$('#progress .bar').html(percentage);
$('#progress .bar').width(percentage);
if(data<100)
{
setTimeout('checkProgress()',500);
}
});
}[/javascript]
Je n'arrive pas à comprendre pourquoi sa fait sa que sur le premier Upload.
Pouvez vous m'aider ?
Merci
J'ai fait un formulaire d'upload avec une progress-bar qui permet d'envoyer un fichier à la fois. J’utilise jQuery.
Mais le souci, c'est que lorsque on upload un premier fichier, ma progress-bar passe directement à 100 % ce qui n'arrive pas pour les tentative suivante. Le premier fichier s'upload pourtant bien mais j'ai remarqué que le array de ce premier upload est vide.
Voici les code :
Formulaire :
<form id="upload_form" action="upload.php" method="post" enctype="multipart/form-data" target="result_frame">
<input type="hidden" name="<?php echo ini_get('session.upload_progress.name');?>" value="progression" />
<input type="file" name="file" id="file">
<button id="submit-button" onclick="upload()">Envoyer le fichier</button>
</form>
upload.php :<?php
session_start();
if(!empty($_FILES))
{
foreach($_FILES as $id=>$file)
{
$source = $file['tmp_name'];
$dest = 'uploads/'.$file['name'];
$infosfichier = pathinfo($_FILES['file']['name']);
$extension_upload = $infosfichier['extension'];
$extensions_autorisees = array('jpg', 'jpeg', 'gif', '7z', 'pdf', 'zip', 'rar', 'png');
if (in_array($extension_upload, $extensions_autorisees) AND $file['error']==UPLOAD_ERR_OK)
{
move_uploaded_file($source,$dest);
echo '<div><h3>Le fichier à bien été envoyé</h3></div>';
}
else
echo '<div><h3>Une erreure c'est produite !</h3></div>';
Le php de la progress-bar :
<?php
session_start();
$key = ini_get('session.upload_progress.prefix').'progression';
if(!empty($_SESSION[$key]))
{
$data = $_SESSION[$key];
$processed = $data['bytes_processed'];
$length = $data['content_length'];
$progress = ceil(100*$processed / $length);
}
else
{
$progress = 100;
}
echo $progress;
?>
Le js de la progress-bar :[javascript]function upload()
{
$('#progress .bar').html('0%');
$('#progress .bar').width('0%');
$('#upload_form').submit();
setTimeout('checkProgress()',1500);
}
function checkProgress()
{
$.get('progress.php',function(data)
{
var percentage = data +'%';
$('#progress .bar').html(percentage);
$('#progress .bar').width(percentage);
if(data<100)
{
setTimeout('checkProgress()',500);
}
});
}[/javascript]
Je n'arrive pas à comprendre pourquoi sa fait sa que sur le premier Upload.
Pouvez vous m'aider ?
Merci