Précédent   Forum du club des développeurs et IT Pro > PHP > Langage > Formulaires
Formulaires Forum d'entraide sur les formulaires avec PHP. Avant de poster -> FAQ formulaires, Cours de formulaires et Sources de formulaires
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 23/12/2012, 05h37   #1
cyprianus
Invité de passage
 
Homme
Inscription : avril 2012
Messages : 19
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : avril 2012
Messages : 19
Points : 0
Points : 0
Par défaut Problème upload photo

Je souhaiterais urploader une photo dans "id/pics/nouvel ans/
Mais cela ne marche pas.Mais si le dossier ne contient pas d'espace comme id/pics/google ça mache!! Aidez moi svp

Code PHP :
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
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
<?php include "config.php";?>
<header>
<link rel="stylesheet" href="style.css" />
</header>
<up><form name="upload" enctype="multipart/form-data" method="post" action="upload.php">
  <input type="file" name="file">
  <br><br>
  Choisir le dossier de destination :<br>
  <select name="folder">
  <?php
  $query = $bdd->query("SELECT * FROM album WHERE user ='".$_SESSION['pseudo']."'");
$c = $query->fetch();
 
while( $c = $query->fetch()){
$r=$c['url'];
 
$a=$c['name'];
$b=ereg_replace(' ','%',$a);
$requette = $bdd->query("SELECT * FROM dossier WHERE user ='".$_SESSION['pseudo']."'");
$d = $requette->fetch();
$idd=$d['id'];
?>
 
    <option name="folder"value="<?php echo $idd;?>/pics/<?php echo $b;?>/"><?php echo $a;?></option>
	<?php }?>
  </select>
  <br><br>
  <input type="submit" name="submit" value="Envoyer le fichier">
</form>
<br>
<br>
</body>
</html>
<?php
if(isset($_POST['submit'])){
 
$DESTINATION_FOLDER = $_POST["folder"];							//
// Taille maximale de fichier, valeur en bytes					//
$MAX_SIZE = 5000000;											//
// Récupération de l'url de retour								//
$RETURN_LINK = $_SERVER['HTTP_REFERER'];						//
// Définition des extensions de fichier autorisées (avec le ".")//
$AUTH_EXT = array(".docx", ".pdf", ".jpg", ".ppt", ".JPG",		//
	".bmp", ".gif");											//
// ############################################################ //
 
// Fonction permettant de créer un lien de retour automatique
 
function createReturnLink(){
	global $RETURN_LINK;
	echo "<a href='".$RETURN_LINK."'>Retour</a><br>";
}
 
// Fonction permettant de vérifier si l'extension du fichier est
// autorisée.
 
function isExtAuthorized($ext){
	global $AUTH_EXT;
	if(in_array($ext, $AUTH_EXT)){
		return true;
	}else{
		return false;
	}
}
 
// On vérifie que le champs contenant le chemin du fichier soit
// bien rempli.
 
if(!empty($_FILES["file"]["name"])){
 
	// Nom du fichier choisi:
	$nomFichier = $_FILES["file"]["name"] ;
	// Nom temporaire sur le serveur:
	$nomTemporaire = $_FILES["file"]["tmp_name"] ;
	// Type du fichier choisi:
	$typeFichier = $_FILES["file"]["type"] ;
	// Poids en octets du fichier choisit:
	$poidsFichier = $_FILES["file"]["size"] ;
	// Code de l'erreur si jamais il y en a une:
	$codeErreur = $_FILES["file"]["error"] ;
	// Extension du fichier
	$extension = strrchr($nomFichier, ".");
 
	// Si le poids du fichier est de 0 bytes, le fichier est
	// invalide (ou le chemin incorrect) => message d'erreur
	// sinon, le script continue.
	if($poidsFichier <> 0){
		// Si la taille du fichier est supérieure à la taille
		// maximum spécifiée => message d'erreur
		if($poidsFichier < $MAX_SIZE){
			// On teste ensuite si le fichier a une extension autorisée
			if(isExtAuthorized($extension)){
				// Ensuite, on copie le fichier uploadé ou bon nous semble.
				$uploadOk = move_uploaded_file($nomTemporaire, $DESTINATION_FOLDER.$nomFichier);
				if($uploadOk){
					echo("L'upload a réussi !<br><br>");
					echo(createReturnLink());
				}else{
					echo("L'upload a échoué !<br><br>");
					echo(createReturnLink());
				}
			}else{
				echo ("Les fichiers avec l'extension $extension ne peuvent pas être uploadés !<br>");
				echo (createReturnLink()."<br>");
			}
		}else{
			$tailleKo = $MAX_SIZE / 1000;
			echo("Vous ne pouvez pas uploader de fichiers dont la taille est supérieure à : $tailleKo Ko.<br>");
			echo (createReturnLink()."<br>");
		}		
	}else{
		echo("Le fichier choisi est invalide !<br>");
		echo (createReturnLink()."<br>");
	}
}else{
	echo("Vous n'avez pas choisi de fichier !<br>");
	echo (createReturnLink()."<br>");
}}
?></up>
cyprianus est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/12/2012, 09h19   #2
JeanKalude
Membre à l'essai
 
Homme Jean-Charles Roussey
Développeur informatique
Inscription : mai 2011
Messages : 13
Détails du profil
Informations personnelles :
Nom : Homme Jean-Charles Roussey
Âge : 33
Localisation : France, Territoire de Belfort (Franche Comté)

Informations professionnelles :
Activité : Développeur informatique
Secteur : Finance

Informations forums :
Inscription : mai 2011
Messages : 13
Points : 23
Points : 23
Salut,

Tu peux éventuellement remplacer les espaces par %20.

la doc dis ici

Citation:
"id/pics/nouvel ans/"
Code :
1
2
3
4
5
6
<?php
$ton_path  = "id/pics/nouvel ans/";
$remplacent = "%20";
$string = ereg_replace(' ', $remplacent, $ton_path);
echo $string; /* vérification ;-) */
?>
Retourne
Citation:
"id/pics/nouvel%20ans/"
@+
JeanKalude est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/12/2012, 09h29   #3
RunCodePhp
Expert Confirmé
 
Avatar de RunCodePhp
 
Inscription : janvier 2010
Messages : 2 965
Détails du profil
Informations personnelles :
Localisation : Réunion

Informations forums :
Inscription : janvier 2010
Messages : 2 965
Points : 3 671
Points : 3 671
Salut

Citation:
Mais si le dossier ne contient pas d'espace comme id/pics/google ça mache!!
Pourquoi donc chercher une autre solution alors que tu viens d'en trouver : nommer ces répertoires (ou dossiers) sans espaces.
Faire autrement c'est se mettre (sérieusement) des bâtons dans les roues.

Une règle qui au passage j'applique toujours, c'est de ne jamais nommer mes fichiers et répertoires avec des caractères spéciaux, c'est à dire : espace, àé&çù, etc, etc ...

Utilise le caractère underscore _ pour simuler un espace, ce caractère est parfaitement correcte (n'est pas un caractère spécial).
Donc renomme ton répertoire comme : nouvel_an
Et l'affaire est réglée.
__________________
Win XP | WampServer 2.2d | Apache 2.2.21 | Php 5.3.10 | MySQL 5.5.20
Si debugger, c'est supprimer des bugs, alors programmer ne peut être que les ajouter [Edsger Dijkstra]
RunCodePhp est déconnecté   Envoyer un message privé Réponse avec citation 01
Vieux 23/12/2012, 09h41   #4
mlebeguec
Membre à l'essai
 
Responsable de service informatique
Inscription : août 2006
Messages : 24
Détails du profil
Informations professionnelles :
Activité : Responsable de service informatique
Secteur : Industrie

Informations forums :
Inscription : août 2006
Messages : 24
Points : 21
Points : 21
Bonjour,

Je suis du même avis que RunCodePhp.

Quel mauvaise habitude ces espaces, caractères spéciaux,etc.

Natso.
mlebeguec est déconnecté   Envoyer un message privé Réponse avec citation 01
Vieux 23/12/2012, 09h55   #5
jreaux62
Rédacteur
 
Avatar de jreaux62
 
Homme Jérôme Réaux
Webdesigner
Inscription : août 2008
Messages : 3 656
Détails du profil
Informations personnelles :
Nom : Homme Jérôme Réaux
Âge : 46
Localisation : France, Pas de Calais (Nord Pas de Calais)

Informations professionnelles :
Activité : Webdesigner
Secteur : Arts - Culture

Informations forums :
Inscription : août 2008
Messages : 3 656
Points : 7 534
Points : 7 534
Envoyer un message via Skype™ à jreaux62
Bonjour,
- <header> ???
- la balise <up>, c'est nouveau ?
- faire des echo ...; après la balise </html>, c'est nouveau aussi ?

Bref : ce serait bien de revoir l'organisation du code.
Et connaitre la structure "type" d'une page serait un "plus" (avec doctype, head, body...).
__________________
"Ce qui se conçoit bien s'énonce clairement - Et les mots pour le dire arrivent aisément."
Nicolas Boileau-Despréaux, Homme de lettres français (1636-1711), principal théoricien de l'esthétique classique.
"Quand le sage montre la lune, le sot regarde le doigt."
Confucius, Homme d'Etat et philosophe chinois (551-479 av. J.-C).
Site perso Mes tutos DVP
Gestion-Affichage de Nouvelles Affichage en tableau HTML Fonctions de redimensionnement d'images
jreaux62 est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 23/12/2012, 10h37   #6
JeanKalude
Membre à l'essai
 
Homme Jean-Charles Roussey
Développeur informatique
Inscription : mai 2011
Messages : 13
Détails du profil
Informations personnelles :
Nom : Homme Jean-Charles Roussey
Âge : 33
Localisation : France, Territoire de Belfort (Franche Comté)

Informations professionnelles :
Activité : Développeur informatique
Secteur : Finance

Informations forums :
Inscription : mai 2011
Messages : 13
Points : 23
Points : 23
Citation:
Pourquoi donc chercher une autre solution alors que tu viens d'en trouver : nommer ces répertoires (ou dossiers) sans espaces.
Personne ne sais si c'est à lui de nommer les répertoires/fichiers, même si cela ressemble à un projet perso et que sur le principe je suis entièrement d'accord avec toi RunCodePhp Ont est parfois tributaires d'autres personnes qui n'ont jamais fait autres chose que du traitement de texte .

@+
JeanKalude est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 09h01.


 
 
 
 
Partenaires

Hébergement Web