Précédent   Forum des professionnels en informatique > PHP > Langage
Langage Forum sur le langage PHP, la POO, les conventions, la sécurité, etc. Avant de poster : FAQ Langage, toutes les FAQ PHP, cours langage et sources PHP
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 26/07/2011, 04h36   #1
Invité de passage
 
Inscription : juillet 2011
Messages : 75
Détails du profil
Informations forums :
Inscription : juillet 2011
Messages : 75
Points : 1
Points : 1
Par défaut Réaliser une progressbar sans APC

Bonjour à tous,

J'aimerais réaliser une progressbar pour un script d'upload de fichier de mon cru. Les fichiers seront assez lourds (plusieurs centaines de Mo).
Pour éviter que les visiteurs ferment la page pensant que le script ne marche pas, j'ai pensé à la progressbar.
Depuis 2 semaines, je fouille internet dans les moindres recoins mais impossible de trouver quoi que ce soit. J'ai lu qu'il fallait de l'ajax ou du jquery pour le faire mais malheureusement je ne connais aucun de ces 2 langages (ou du moins rien pouvant amener à la manipulation d'octet).

J'aimerais que la progressbar soit en % mais si la chose est impossible ou bien trop compliqué je me contenterais d'une animation signalant que l'upload est fonctionnel.

Pour conclure, mon hébergeur n'accepte pas APC (ça aurait été trop simple...).

Merci pour votre aide
sam1212 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/07/2011, 09h20   #2
Modérateur
 
Inscription : septembre 2010
Messages : 7 103
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 103
Points : 8 456
Points : 8 456
a part faire une surcouche en flash ou java, sans APC c'est pas possible (en 5.4 si)
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/07/2011, 13h44   #3
Invité de passage
 
Inscription : juillet 2011
Messages : 75
Détails du profil
Informations forums :
Inscription : juillet 2011
Messages : 75
Points : 1
Points : 1
C'est bien ce que je pensais
Y'a t-il un moyen de faire une barre d'activité comme pour http://dhtmlx.com/docs/products/dhtmlxVault/ (il y a la live demo sur cette page, pour voir ce que je veux dire).
J'ai essayé de télécharger le script pour voir comment c'était fait mais c'est trop "bordélique".

Merci pour l'aide
sam1212 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/07/2011, 14h32   #4
Modérateur
 
Inscription : septembre 2010
Messages : 7 103
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 103
Points : 8 456
Points : 8 456
y'as pas de pourcentage la
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/07/2011, 14h48   #5
Invité de passage
 
Inscription : juillet 2011
Messages : 75
Détails du profil
Informations forums :
Inscription : juillet 2011
Messages : 75
Points : 1
Points : 1
Cf mon premier post:

Citation:
Envoyé par sam1212 Voir le message

J'aimerais que la progressbar soit en % mais si la chose est impossible ou bien trop compliqué je me contenterais d'une animation signalant que l'upload est fonctionnel.
J'aimerais bien avoir cette animation (ou du même type), je la trouve fonctionnelle.

Merci
sam1212 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/07/2011, 14h51   #6
Modérateur
 
Inscription : septembre 2010
Messages : 7 103
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 103
Points : 8 456
Points : 8 456
si c'est juste ça, au moment de l'upload affiche un gif
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/07/2011, 14h58   #7
Invité de passage
 
Inscription : juillet 2011
Messages : 75
Détails du profil
Informations forums :
Inscription : juillet 2011
Messages : 75
Points : 1
Points : 1
Je ne peux pas, le gif s'affiche à la fin de l'upload
As-tu besoin de mon script d'upload? Pourrais-tu me montrer où placer le gif?

Merci.
sam1212 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/07/2011, 15h18   #8
Modérateur
 
Inscription : septembre 2010
Messages : 7 103
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 103
Points : 8 456
Points : 8 456
Citation:
Envoyé par sam1212 Voir le message
Je ne peux pas, le gif s'affiche à la fin de l'upload
As-tu besoin de mon script d'upload? Pourrais-tu me montrer où placer le gif?

Merci.
affiche le dès que tu soumets le formulaire
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/07/2011, 15h27   #9
Invité de passage
 
Inscription : juillet 2011
Messages : 75
Détails du profil
Informations forums :
Inscription : juillet 2011
Messages : 75
Points : 1
Points : 1
Voici mon code:
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
 
<html><form enctype="multipart/form-data" action="#" method="post">
	Transfère le fichier <input type="file" name="monfichier" />
    <input type="submit"/>
</form></html>
<?php
 
if(isset($_FILES['monfichier']))
{
   if ($_FILES['monfichier']['error'] == 0)
	{
		$nomOrigine = $_FILES['monfichier']['name']; 
		$nomTemp = $_FILES['monfichier']['tmp_name'];
		$elementsChemin = pathinfo($nomOrigine);
		$extensionFichier = $elementsChemin['extension'];
		$tailleFichier = $_FILES['monfichier']['size'];
		$maxTaille = 209715200;
 
		$aEviter = array(" - ", "-", " ", "/", "%", "&", "(", ")", "À", "Á", "Â", "Ã", "Ä", "Å", "à", "á", "â", "ã", "
		ä", "å", "Ç", "ç", "È", "É", "Ê", "Ë", "è", "é", "ê", "ë", "Ì", "Í", "Î", "Ï", "ì", "í", "î", "ï", "Ò", "Ó", "Ô", "Õ", "Ö", "ð", "ò", "ó",	
		"ô", "õ", "ö", "Ù", "Ú", "Û", "Ü", "ù", "ú", "û", "ü", "Ý", "ý", "ÿ");
 
		$clean = array ("_", "_", "_", "_", "_", "_", "_", "_", "a", "a", "a" , "a" , "a" , "a" , "a", "a", "a", "a", 
		"a", "a", "a", "c", "c", "e", "e", "e", "e", "e", "e", "e", "e", "i", "i", "i", "i", "i", "i", "i", "i", "o",
		"o", "o","o","o","o","o","o","o","o","o", "u", "u", "u", "u", "u", "u", "u", "u", "y", "y","y");
 
		$nomOriginePropre = str_replace($aEviter, $clean, $nomOrigine);
		$nomOriginePropre = strtolower($nomOriginePropre);
 
 
			if (isset($extensionFichier))
			{
				$extensionsAutorisees = array("mp4", "avi", "txt") ;
 
					if(!(in_array($extensionFichier, $extensionsAutorisees)))
					{
						echo "<br/>Le fichier n'a pas l'extension attendue";
					}
 
					elseif ($tailleFichier > $maxTaille)
					{
				echo " <br />max taille atteinte";
				}
 
 
			else
			{
				chdir('./uploads');
 
					if(file_exists(getcwd().'\\'.$nomOriginePropre))
						{
							$NewoNom = str_replace(".".$extensionFichier,"",$nomOriginePropre).rand().".".$extensionFichier;
							rename($nomTemp,$NewoNom);
							if(!move_uploaded_file($NewoNom,getcwd()))
							{
								echo "<br/>Le nom du fichier est : ".$NewoNom;
								echo "<br/>Sa taille est de : ".$tailleFichier. " octets";
								echo "<br/>Le fichier est dispo dans ce dossier : ".getcwd();
								echo "<br/>".getcwd().'\\'.$NewoNom;
							}
						}
 
					else { echo "existe pas";
						rename($nomTemp, $nomOriginePropre);
 
 
							if (!move_uploaded_file($nomOrigine,getcwd()))
							{
								echo "<br/> le nom du fichier est: ".$nomOriginePropre;
								echo "<br/> Sa taille est de: ".$tailleFichier. "octets";
								echo "<br />le fichier est dispo dans ce dossier: ".getcwd();
							}
 
							else { echo "erreur";}	
						}
 
 
 
			}
 
			}
	}
 
	else 
		{
		echo "il y a des erreurs";
		}
 
 
}
 
?>
J'ai essayé de faire un img src dans le premier isset mais ça ne marche pas.
Comment remplacer le form par l'image?

Merci.


PS: Mieux vaut-il utiliser mon système $aEviter/$clean ou

Code :
1
2
$nomOrigine=strtr($nomOrigine,"¿=+-°`)]}{[(#~é&^¨%§‰';,_ ¤²£æ@ÁÀÂÄÃÅÇÐÉÈÊË€ÍÏÎÌÑÓÒÔÖÕÚÙÛÜÝ¥áàâäãåç¢éèêëƒíìîïñðóòôöõúùûüµýÿ",'------------------------------AAAAAAACDEEEEEIIIINOOOOOUUUUYYaaaaaacceeeefiiiinoooooouuuuuyy');
        $nomOrigine = preg_replace('/([^.a-z0-9]+)/i', '-', $nomOrigine);
Merci.
sam1212 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/07/2011, 15h32   #10
Modérateur
 
Inscription : septembre 2010
Messages : 7 103
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 103
Points : 8 456
Points : 8 456
je te conseil de séparer tes fichiers, pour afficher une image tu peux le faire en javascript au moment du submit, pour les caractères du fichier c'est plus simple de vérifier les caractères autorisés que ceux non autorisés, pour le clean t'as pas le faire
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/07/2011, 15h36   #11
Invité de passage
 
Inscription : juillet 2011
Messages : 75
Détails du profil
Informations forums :
Inscription : juillet 2011
Messages : 75
Points : 1
Points : 1
Citation:
Envoyé par stealth35 Voir le message
je te conseil de séparer tes fichiers
Séparer formulaire/traitement?


Citation:
Envoyé par stealth35 Voir le message
pour afficher une image tu peux le faire en javascript au moment du submit
ça, je ne sais pas faire

Citation:
Envoyé par stealth35 Voir le message
pour les caractères du fichier c'est plus simple de vérifier les caractères autorisés que ceux non autorisés, pour le clean t'as pas le faire
Oui mais je ne vais pas bloquer un upload pour un "é", le plus simple est de remplacer par "e" non?

Merci pour ton aide
sam1212 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/07/2011, 15h43   #12
Membre habitué
 
Inscription : juillet 2009
Messages : 156
Détails du profil
Informations forums :
Inscription : juillet 2009
Messages : 156
Points : 133
Points : 133
effectivement tu sera obliger de passer par du javascript...

Au final il faudrait que tu parte un peu sur le même principe que de l'ajax de base... c'est à dire, tu affiche ton gif qui fera office de loader et derrière tu gère ton formulaire, soit en simple, ou pour quelques chose de propre et poussé dans le principe, en ajax...

Puis une fois ton formulaire correctement soumis, tu actualises ta div pour afficher ce que tu veux qui permettra de signaler que le chargement est terminé... ou tu change de page...
Ze AzAr est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/07/2011, 15h44   #13
Modérateur
 
Inscription : septembre 2010
Messages : 7 103
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 103
Points : 8 456
Points : 8 456
Citation:
Envoyé par sam1212 Voir le message
Oui mais je ne vais pas bloquer un upload pour un "é", le plus simple est de remplacer par "e" non?

Merci pour ton aide
non c'est plus compliqué, autant donné à tes utilisateurs de bonne habitude.

pour le reste c'est dans les base du javascript, je te conseil d'aller voir des tutos
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/07/2011, 15h48   #14
Responsable Qt & Web sémantique

 
Avatar de dourouc05
 
Homme Thibaut Cuvelier
Étudiant
Inscription : août 2008
Messages : 16 297
Détails du profil
Informations personnelles :
Nom : Homme Thibaut Cuvelier
Localisation : Belgique

Informations professionnelles :
Activité : Étudiant
Secteur : Enseignement

Informations forums :
Inscription : août 2008
Messages : 16 297
Points : 49 879
Points : 49 879
Envoyer un message via MSN à dourouc05 Envoyer un message via Yahoo à dourouc05
Citation:
Envoyé par stealth35 Voir le message
a part faire une surcouche en flash ou java, sans APC c'est pas possible (en 5.4 si)
Si, c'est possible, mais avec HTML5 (sans support de beaucoup de navigateurs, en plus) : http://www.w3schools.com/html5/tag_progress.asp. Mais ça nécessite quand même du JS pour la mise à jour de la barre.
__________________
Le troisième défi Qt !

Vous souhaitez participer aux rubriques Qt ou PyQt/PySide (tutoriels, FAQ, traductions, sources) ? Contactez-moi par MP.

Qt : La FAQ : 200 QR
symfony : sfDoctrineGuard

Pas de question d'ordre technique par MP !
dourouc05 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/07/2011, 15h48   #15
Membre habitué
 
Inscription : juillet 2009
Messages : 156
Détails du profil
Informations forums :
Inscription : juillet 2009
Messages : 156
Points : 133
Points : 133
de plus si tu commence à jouer avec le javascript, tu pourra en live vérifier la bonne orthographe, et donc tes caractères autoriser, et dès que l'un ne correspond pas à ton a-z 1-9 tu le signale à coté...
Ze AzAr est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/07/2011, 15h50   #16
Invité de passage
 
Inscription : juillet 2011
Messages : 75
Détails du profil
Informations forums :
Inscription : juillet 2011
Messages : 75
Points : 1
Points : 1
Citation:
Envoyé par Ze AzAr Voir le message
effectivement tu sera obliger de passer par du javascript...

Au final il faudrait que tu parte un peu sur le même principe que de l'ajax de base... c'est à dire, tu affiche ton gif qui fera office de loader et derrière tu gère ton formulaire, soit en simple, ou pour quelques chose de propre et poussé dans le principe, en ajax...

Puis une fois ton formulaire correctement soumis, tu actualises ta div pour afficher ce que tu veux qui permettra de signaler que le chargement est terminé... ou tu change de page...
Juste pour afficher un loader, il faut tout refaire le script en ajax? Je ne comprends pas là.


@stealth35: as-tu un bon tuto permettant de rajouter mon gif simplement (sans que je doive apprendre le js juste pour rajouter un gif...

Merci à tous les 2.

Edit: Je viens de voir le message de dourouc05, je sais qu'il était possible de faire ça en html5 mais vu le peu de navigateur le supportant, je ne vois pas trop l'intérêt (pour l'instant). Mais merci pour ta réponse .
sam1212 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/07/2011, 15h53   #17
Modérateur
 
Inscription : septembre 2010
Messages : 7 103
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 103
Points : 8 456
Points : 8 456
Citation:
Envoyé par dourouc05 Voir le message
Si, c'est possible, mais avec HTML5 (sans support de beaucoup de navigateurs, en plus) : http://www.w3schools.com/html5/tag_progress.asp. Mais ça nécessite quand même du JS pour la mise à jour de la barre.
c'est juste la balise progress ça, c'est pas uniquement dédié a l'upload de fichier, sinon ou pour l'upload en javascript c'est possible par contre via un formulaire j'ai jamais essayé, en drag and drop ca marche nickel (faut pas que le fichier soit trop gros sinon le navigateur il bouffe)

EDIT : apres en javascript tu peux aussi checker si la personne quitte la page, et lui mettre une fenêtre pour bien confirmer la fermeture
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/07/2011, 16h00   #18
Invité de passage
 
Inscription : juillet 2011
Messages : 75
Détails du profil
Informations forums :
Inscription : juillet 2011
Messages : 75
Points : 1
Points : 1
Citation:
Envoyé par stealth35 Voir le message
EDIT : apres en javascript tu peux aussi checker si la personne quitte la page, et lui mettre une fenêtre pour bien confirmer la fermeture
Je tiens à préciser que j'ai du faire 3 lignes de js de toute ma vie donc je ne sais ni rajouter 1 gif quand on envoie un formulaire, ni vérifier le nom du fichier ni encore moins checker si le visiteur quitte la page.
sam1212 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/07/2011, 16h01   #19
Modérateur
 
Inscription : septembre 2010
Messages : 7 103
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 103
Points : 8 456
Points : 8 456
Citation:
Envoyé par sam1212 Voir le message
Je tiens à préciser que j'ai du faire 3 lignes de js de toute ma vie donc je ne sais pas ni rajouter 1 gif quand on envoie un formulaire, ni vérifier le nom du fichier ni encore moins checker si le visiteur quitte la page.
Il est toujours temps de s'y mettre
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/07/2011, 16h06   #20
Invité de passage
 
Inscription : juillet 2011
Messages : 75
Détails du profil
Informations forums :
Inscription : juillet 2011
Messages : 75
Points : 1
Points : 1
Pour l'instant, je n'ai pas trop le temps de commencer un nouveau langage, il faut je finisse ce script avant (avec la partie téléchargement sécurisé par la suite).
Puis-je avoir un tuto ou l'appellation exacte de ce que je dois faire pour afficher mon gif à la place de mon form?

Merci
sam1212 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 07h33.


 
 
 
 
Partenaires

Hébergement Web