Précédent   Forum des professionnels en informatique > PHP > Langage > Syntaxe
Syntaxe Forum d'entraide sur la syntaxe de PHP et la POO. Avant de poster -> FAQ syntaxe, Cours d'initiation et cours de POO
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 20/12/2010, 15h59   #1
Candidat au titre de Membre du Club
 
Inscription : décembre 2008
Messages : 41
Détails du profil
Informations personnelles :
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : décembre 2008
Messages : 41
Points : 13
Points : 13
Par défaut PB upload fichier à partir d'un formulaire

Bonjour à tous,
Voilà, j'ai beau simplifier mon code au maximum, il ne fonctionne toujours pas, et ne me donne qu'une page blanche, si bien que je n'arrive pas à avancer.

A partir d'un formulaire (dans une partie admin), je voudrais uploader des images (qui seront visibles en partie publique).

Mon formulaire est comme ci :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<form method="post" action="page.php" enctype="multipart/form-data">
            <p>
                <fieldset style="background:url(/images/fond-formulaire.jpg) "repeat-y" >
                <legend class="center">Images</legend>
 
                <input type="hidden" name="MAX_FILE_SIZE" value="5242880" />
 
                <label for="file" class="float">Fichier :</label>
                <input type="file" name="file" />
                <br />
 
                <label for="description" class="float">Description :</label>
                <input type="text" name="description" id="description" size="60" />
                <br />
 
                </fieldset>
                <div class="center">
                <input type="submit" value="Envoyer" />
                </div><!-- end center-->
            </p>
		</form>
Ma page de redirection est comme cela (avec création d'un nouveau nom de fichier, et écriture dans bdd) :
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
 
	$dossier = $_SERVER['DOCUMENT_ROOT'].'/visuels/';
	$maxsize = $_POST[MAX_FILE_SIZE];
 
	if ($_FILES['file']['error'] > 0) 
	{
		$erreur = 'Erreur lors du transfert';
	}
	else
	{
		if ($_FILES['file']['size'] > $maxsize)
		{
			$erreur = 'Le fichier est trop gros';
		}
		else
		{
			$extensions_valides = array('jpg','jpeg','gif','png', 'pdf');
			$extension_upload = strtolower(  substr(  strrchr($_FILES['file']['name'], '.'),1));
 
			if (in_array($extension_upload,$extensions_valides))
			{
					$nom = "md5(uniqid(rand(), true)).{$extension_upload}";
					$resultat = move_uploaded_file($_FILES['file']['tmp_name'],$dossier.$nom);
 
					if ($resultat)
					{
						echo 'Transfert réussi';
						$image = $dossier.$nom;
						$description = addslashes($_POST['description']);
 
						$req = $bdd->prepare('INSERT INTO images (up_filename, up_filesize, up_description, up_finalname) VALUES( ?, ?, ?, ?) ');
						$req->execute(array($_FILES['file']['name'] , $_FILES['file']['size'], $description, $nom));
					}
					else
					{
						echo 'Echec du transfert';
					}
				}
			}
	}
Il y a sûrement qqchose qui cloche, mais je ne vois pas quoi, et je tourne en rond désespérément !! quelqu'un pourrait-il m'aider ?
Merci mille fois par avance,
Bonne fin de journée à tous.
MarieNum est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/12/2010, 16h04   #2
Membre éprouvé
 
Avatar de radicaldreamer
 
Homme Guillaume
Développeur Web
Inscription : décembre 2007
Messages : 353
Détails du profil
Informations personnelles :
Nom : Homme Guillaume
Âge : 21
Localisation : France, Haut Rhin (Alsace)

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : décembre 2007
Messages : 353
Points : 473
Points : 473
Code :
1
2
 
$nom = "md5(uniqid(rand(), true)).{$extension_upload}";
A remplacer par:

Code :
$nom = md5(uniqid(rand(), true)).$extension_upload;
Test, et tient nous au courant. En fait puisque c'est dans une chaine de caractère, ton move_upload_file doit boguer....
__________________
Si ce que tu as à dire n'est pas plus beau que le silence, alors tais toi.

- Pensez à voter pour les messages qui vous ont été utiles ainsi que de mettre
radicaldreamer est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 21/12/2010, 10h09   #3
Candidat au titre de Membre du Club
 
Inscription : décembre 2008
Messages : 41
Détails du profil
Informations personnelles :
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : décembre 2008
Messages : 41
Points : 13
Points : 13
Bonjour,
Merci pour ta réponse.
J'ai testé et cela me donne une erreur sur la ligne en question :
Code :
$nom = md5(uniqid(rand(), true)).{$extension_upload};
MarieNum est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/12/2010, 10h38   #4
Candidat au titre de Membre du Club
 
Inscription : décembre 2008
Messages : 41
Détails du profil
Informations personnelles :
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : décembre 2008
Messages : 41
Points : 13
Points : 13
Autant pour moi ! pas réveillé ce matin, je n'avais pas retiré les accolades !
Donc avec cette modif j'arrive toujours sur une page blanche.
MarieNum est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/12/2010, 10h49   #5
Membre éprouvé
 
Avatar de radicaldreamer
 
Homme Guillaume
Développeur Web
Inscription : décembre 2007
Messages : 353
Détails du profil
Informations personnelles :
Nom : Homme Guillaume
Âge : 21
Localisation : France, Haut Rhin (Alsace)

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : décembre 2007
Messages : 353
Points : 473
Points : 473
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
<?php
	$dossier = $_SERVER['DOCUMENT_ROOT'].'/visuels/';
	$maxsize = $_POST['MAX_FILE_SIZE'];
 
	if ($_FILES['file']['error'] > 0) 
	{
		$erreur = 'Erreur lors du transfert';
	}
	else
	{
		if ($_FILES['file']['size'] > $maxsize)
		{
			$erreur = 'Le fichier est trop gros';
		}
		else
		{
			$extensions_valides = array('jpg','jpeg','gif','png', 'pdf');
			$extension_upload = strtolower(  substr(  strrchr($_FILES['file']['name'], '.'),1));
 
			if (in_array($extension_upload,$extensions_valides))
			{
					$nom = md5(uniqid(rand(), true)).$extension_upload;
					$resultat = move_uploaded_file($_FILES['file']['tmp_name'],$dossier.$nom);
 
					if ($resultat)
					{
						echo 'Transfert réussi';
						$image = $dossier.$nom;
						$description = addslashes($_POST['description']);
 
						$req = $bdd->prepare('INSERT INTO images (up_filename, up_filesize, up_description, up_finalname) VALUES( ?, ?, ?, ?) ');
						$req->execute(array($_FILES['file']['name'] , $_FILES['file']['size'], $description, $nom));
					}
					else
					{
						echo 'Echec du transfert';
					}
				}
			}
	}
?>
Avec ça toujours pas? (seconde ligne, mettre entre simple cote le 'max_file_size').
__________________
Si ce que tu as à dire n'est pas plus beau que le silence, alors tais toi.

- Pensez à voter pour les messages qui vous ont été utiles ainsi que de mettre
radicaldreamer est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 21/12/2010, 11h02   #6
Candidat au titre de Membre du Club
 
Inscription : décembre 2008
Messages : 41
Détails du profil
Informations personnelles :
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : décembre 2008
Messages : 41
Points : 13
Points : 13
Toujours la page blanche !
MarieNum est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/12/2010, 11h18   #7
Candidat au titre de Membre du Club
 
Inscription : décembre 2008
Messages : 41
Détails du profil
Informations personnelles :
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : décembre 2008
Messages : 41
Points : 13
Points : 13
à force de faire des tests dans un sens puis dans un autre, j'avais fait une faute d'orthographe on va dire que c'est la fin de l'année ! suis fatigué !!

Donc, ça fonctionne, MAIS ça ne change pas le nom de mon fichier, et cela ajoute une 2e extension. (nom_dOrigine_du_fichier.jpgjpg)
Je remets 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
 
	$dossier = $_SERVER['DOCUMENT_ROOT'].'/visuels/';
	$maxsize = $_POST['max_file_size'];
 
	if ($_FILES['file']['error'] > 0) 
	{
		$erreur = 'Erreur lors du transfert';
	}
	else
	{
		if ($_FILES['file']['size'] > $maxsize)
		{
			$erreur = 'Le fichier est trop gros';
		}
		else
		{
			$extensions_valides = array('jpg','jpeg','gif','png', 'pdf');
			$extension_upload = strtolower(  substr(  strrchr($_FILES['file']['name'], '.'),1));
 
			if (in_array($extension_upload,$extensions_valides))
			{
					$nom = md5(uniqid(rand(), true)).$extension_upload;
					$resultat = move_uploaded_file($_FILES['file']['tmp_name'],$dossier.$nom);
 
					if ($resultat)
					{
						echo 'Transfert réussi';
						$image = $dossier.$nom;
						$description = addslashes($_POST['description']);
 
						$req = $bdd->prepare('INSERT INTO images (up_filename, up_filesize, up_description, up_finalname) VALUES( ?, ?, ?, ?) ');
						$req->execute(array($_FILES['file']['name'] , $_FILES['file']['size'], $description, $nom));
					}
					else
					{
						echo 'Echec du transfert';
					}
				}
			}
	}
Merci encore pour ton aide
MarieNum est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/12/2010, 11h31   #8
Membre éprouvé
 
Avatar de radicaldreamer
 
Homme Guillaume
Développeur Web
Inscription : décembre 2007
Messages : 353
Détails du profil
Informations personnelles :
Nom : Homme Guillaume
Âge : 21
Localisation : France, Haut Rhin (Alsace)

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : décembre 2007
Messages : 353
Points : 473
Points : 473
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
	$dossier = $_SERVER['DOCUMENT_ROOT'].'/visuels/';
	$maxsize = $_POST['max_file_size'];
 
	if ($_FILES['file']['error'] > 0) 
	{
		$erreur = 'Erreur lors du transfert';
	}
	else
	{
		if ($_FILES['file']['size'] > $maxsize)
		{
			$erreur = 'Le fichier est trop gros';
		}
		else
		{
			$extensions_valides = array('jpg','jpeg','gif','png', 'pdf');
			$extension_upload = strtolower(  substr(  strrchr($_FILES['file']['name'], '.'),1));
 
			if (in_array($extension_upload,$extensions_valides))
			{
					$nom = md5(uniqid(rand(), true)).'.'.$extension_upload;//erreur ici. compare avec ta ligne :)
					$resultat = move_uploaded_file($_FILES['file']['tmp_name'],$dossier.$nom);
 
					if ($resultat)
					{
						echo 'Transfert réussi';
						$image = $dossier.$nom;
						$description = addslashes($_POST['description']);
 
						$req = $bdd->prepare('INSERT INTO images (up_filename, up_filesize, up_description, up_finalname) VALUES( ?, ?, ?, ?) ');
						$req->execute(array($_FILES['file']['name'] , $_FILES['file']['size'], $description, $nom));
					}
					else
					{
						echo 'Echec du transfert';
					}
				}
			}
	}
__________________
Si ce que tu as à dire n'est pas plus beau que le silence, alors tais toi.

- Pensez à voter pour les messages qui vous ont été utiles ainsi que de mettre
radicaldreamer est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 21/12/2010, 11h37   #9
Candidat au titre de Membre du Club
 
Inscription : décembre 2008
Messages : 41
Détails du profil
Informations personnelles :
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : décembre 2008
Messages : 41
Points : 13
Points : 13
Yee-haw !!
Merci, c'est génial, ça fonctionne super.
Très bonne journée !
MarieNum 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 05h47.


 
 
 
 
Partenaires

Hébergement Web