IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

PB upload fichier à partir d'un formulaire


Sujet :

Langage PHP

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    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 : 28
    Points
    28
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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.

  2. #2
    Membre confirmé Avatar de rikemSen
    Homme Profil pro
    Analyste Développeur Web - Fizzup.com
    Inscrit en
    Décembre 2007
    Messages
    387
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Bas Rhin (Alsace)

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

    Informations forums :
    Inscription : Décembre 2007
    Messages : 387
    Points : 540
    Points
    540
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $nom = "md5(uniqid(rand(), true)).{$extension_upload}";
    A remplacer par:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $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....

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    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 : 28
    Points
    28
    Par défaut
    Bonjour,
    Merci pour ta réponse.
    J'ai testé et cela me donne une erreur sur la ligne en question :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $nom = md5(uniqid(rand(), true)).{$extension_upload};

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    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 : 28
    Points
    28
    Par défaut
    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.

  5. #5
    Membre confirmé Avatar de rikemSen
    Homme Profil pro
    Analyste Développeur Web - Fizzup.com
    Inscrit en
    Décembre 2007
    Messages
    387
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Bas Rhin (Alsace)

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

    Informations forums :
    Inscription : Décembre 2007
    Messages : 387
    Points : 540
    Points
    540
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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').

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    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 : 28
    Points
    28
    Par défaut
    Toujours la page blanche !

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    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 : 28
    Points
    28
    Par défaut
    à 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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  8. #8
    Membre confirmé Avatar de rikemSen
    Homme Profil pro
    Analyste Développeur Web - Fizzup.com
    Inscrit en
    Décembre 2007
    Messages
    387
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Bas Rhin (Alsace)

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

    Informations forums :
    Inscription : Décembre 2007
    Messages : 387
    Points : 540
    Points
    540
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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';
    					}
    				}
    			}
    	}

  9. #9
    Nouveau membre du Club
    Profil pro
    Inscrit en
    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 : 28
    Points
    28
    Par défaut
    Yee-haw !!
    Merci, c'est génial, ça fonctionne super.
    Très bonne journée !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Upload de plusieurs fichiers a partir d'un formulaire
    Par taekwon dans le forum Langage
    Réponses: 15
    Dernier message: 20/10/2010, 17h13
  2. Modifier un fichier à partir d'un formulaire SharePoint
    Par Magicmodjo dans le forum Configuration
    Réponses: 5
    Dernier message: 18/09/2009, 15h16
  3. [SP-2007] Modifier un fichier à partir d'un formulaire SharePoint
    Par Magicmodjo dans le forum SharePoint
    Réponses: 5
    Dernier message: 18/09/2009, 15h16
  4. Lecture d'un fichier à partir d'un formulaire
    Par Dirty Harry dans le forum Langage
    Réponses: 7
    Dernier message: 01/02/2007, 16h39
  5. gestion de fichier à partir d'un formulaire
    Par seb59dk dans le forum Access
    Réponses: 3
    Dernier message: 06/09/2005, 16h52

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo