Bonjour,
Voilà j'ai commencé à coder mon uploader avec jquery et php.
Pour récupérer la progression de l'upload, j'ai décidé d'utiliser l'extension pecl uploadprogress.so .
Je l'ai installé en root sur debian :
qui me retourne :
Code : Sélectionner tout - Visualiser dans une fenêtre à part pecl install uploadprogress
Alors je relance en faisant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part Failed to download pecl/uploadprogress within preferred state "stable", latest release is version 0.9.2, stability "beta", use "channel://pecl.php.net/uploadprogress-0.9.2" to install
L'extension s'est installé, et me demande d'ajouter extension=uploadprogress.so dans php.ini.
Code : Sélectionner tout - Visualiser dans une fenêtre à part pecl install channel://pecl.php.net/uploadprogress-0.9.2
J'execute, redémmare apache2 et vérifie dans le phpinfo qui me retourne :
Jusque la rien de compliqué.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 uploadprogress 0.9.2 Directive Local Value Master Value uploadprogress.file.contents_template /tmp/upload_contents_%s /tmp/upload_contents_%s uploadprogress.file.filename_template /tmp/upt_%s.txt /tmp/upt_%s.txt uploadprogress.get_contents 0 0
Je test mon script d'upload, la bar d'upload ne bouge pas, je debug en ouvrant 2 fenetre, l'une avec le formulaire suivant :
l'autre avec le php progress.php:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8<form action="" method="POST" id="uploadform" enctype="multipart/form-data" > <input type="hidden" name="UPLOAD_IDENTIFIER" id="progress_key" value="<?php $uuid ?>" /> <input type="file" name="ulfile" id="ulfile" /> <input type="submit" value="Upload" /> </form>
Je debug en récupérant $uuid avant l'upload et pendant l'upload d'un fichier sur la deuxieme progress.php?id=001456674(ex)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 header("Cache-Control: no-cache, must-revalidate"); header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); error_reporting(E_ALL); if (@$_GET['id']) { echo json_encode(uploadprogress_get_info($_GET['id'])); exit(); } $uuid = uniqid();
J'ai tout éssayé, rien à faire la fonction uploadprogress_get_info me retourne toujours un NULL.
Alors que l'upload se fait.
J'ai éssayé avec le module APC et la aucun problèmes! Mais apc retourne moins d'informations que uploadprogress donc je prefererais faire fonctionner uploadprogress.
NB : J'ai augmenter la taille max d'upload php dans le php.ini, change rien.
Ma version PHP : PHP Version 5.2.0-8+etch13
Quelqu'un aurait réussi a la faire fonctionner correctement? Si oui, peut-il m'expliquer sa démarche ou ce qui ne vas pas/qui manque dans la mienne.
Merci d'avance.
Austriker
Partager