Partage
  • Partager sur Facebook
  • Partager sur Twitter

Enregistrer chemin acces fichier et le récupérer PHP

    2 juin 2009 à 17:40:50

    Bonjour,

    je sollicite votre aide dans mon projet de upload.


    mon code upload marche parfaitement bien le soucis c'est que je n'arrive pas à enregistrer dans MYSQL le chemin d'acces au fichier comment faire pour enregistrer le chemin d'enregistrement?
    et comment faire une fois enregistrer pour récupéré l' URL afin de l'envoyer aux personnes qui le desire?


    pour info voila mon code upload.php

    <p>Veuillez inserrer le fichier &agrave; envoyer</p><br />
      <?php
    
    /* Les configs */
    $dossier = 'D:/upload_fichier/';
    $taille_max = 2000000;
    $extension_auth = array('jpg', 'jpeg', 'gif', 'png','doc','pdf','txt','zip');
    /*************/
    
    if(!empty($_POST['envoyer'])){
    	$count = count($_FILES['fichier']['name']);
    
    	for ($i = 0; $i < $count; $i++){
    		$infos 		 =  pathinfo($_FILES['fichier']['name'][$i]);
    		$fichier 	 = $_FILES['fichier']['name'][$i];
    		$fichier_tmp = $_FILES['fichier']['tmp_name'][$i];
    		$taille 	 = $_FILES['fichier']['size'][$i];
    		$extension	 = $infos['extension'];
    		
    		if(!empty($fichier)){ // Si fichier ne vaut pas null
    			/* Vérification de sécurité */
    			if(preg_match('#php#isU',$fichier)){ // Si un nom de fichier comporte le mot php, on le remplace.
    				$fichier = str_replace('php','8sdf',$fichier);
    			}
    			if(!in_array($extension, $extension_auth)){ //Si l'extension n'est pas dans le tableau.
       				$erreur = 'Vous ne pouvez pas uploader un fichier de type .'.$extension.' !!!';
    			}
    			if($taille>$taille_max){ // Si la taille du fichier est plus grande que la taille maximal.
    				$erreur = 'Le fichier ' . $fichier . ' excède la taille maximale autorisée qui est de ' . floor($taille_max/1024/1024) . ' Mo';
    			}
    			/*************************/
    			if(empty($erreur)){ // Si la variable erreur vaut null
    				
    				if(copy($fichier_tmp, $dossier.$fichier)){ // Si le fichier a bien été transferé.
    					echo '<p>Le fichier '.$fichier.' a bien été transferé.</p>';
    				}else{
    					echo '<p>Le fichier '.$fichier.' n\'a pas été transferer sur le serveur, l\'erreur de transfere est incconu.</p>';
    				}
    			}else{
    				echo '<p>'.$erreur.'</p>';
    			}
    		}
    		// Ici traite tous tes fichier grace a $i
    	}
    }else{
    	// Formulaire d'envoie de fichier
    ?>
    	
        	<form method="post" action="" enctype="multipart/form-data">
    				<input name="fichier[]" type="file" /><br />
                    <input name="fichier[]" type="file" /><br />
                    <input name="fichier[]" type="file" /><br />
                    <input name="fichier[]" type="file" /><br />
    				<br />
    			<input type="submit" name="envoyer" value="Soumettre" />
    		</form>
        
    <?php
    }
    ?>
    


    Pouvez vous m'aidez à formuler la requete? je travail dessus depuis 48h et je trouve aucune solution.je vous remercie pour le temps que vous sacrifiez a me répondre.
    Bien cordialement
    • Partager sur Facebook
    • Partager sur Twitter
      2 juin 2009 à 17:49:45

      Il faut faire un move_uploaded file et spécifier un Path d'abord...

      move_uploaded_file($fichier, $chemin);
      • Partager sur Facebook
      • Partager sur Twitter
        2 juin 2009 à 17:53:32

        Bonjour shantees et deja un grand merci pour ta reponse.
        Cependant pour le move_uploaded sert a deplacé un fichier telecharger si je me trompe pas mais je lui indique quoi comme chemin?(je reçois les fichier dans un dossier deja avec $dossier = 'D:/upload_fichier/';)
        et pour le path je ne connais absolument pas peux tu développer un peu plus sil te plait?
        Encore merci pour ton aide (rapide avec ça)
        • Partager sur Facebook
        • Partager sur Twitter
          2 juin 2009 à 17:56:39

          Bah moi j'aurais fait comme ça.

          1) Tu upload un fichier

          2) Move uploaded file

          Tu spécifie un dossier où il sera upload seul le nom du fichier change.

          exemple :

          move_uploaded_file($fichier, "repertoire/".$nomdynamique.".".$extension."");

          Donc tu sauvegarde le nom du fichier dans ta SQL

          Après tu fais un lien <a href="tondossier/<?php echo($nomdufichier) ?>">Ancre</a>.

          • Partager sur Facebook
          • Partager sur Twitter
            2 juin 2009 à 17:59:51

            d'accord pour le move uploaded file mais a aucun moment il y'a un INSERT TO dans la Table pour l'URL du fichier non?c'est cette commande qu'il me manque en gros.
            • Partager sur Facebook
            • Partager sur Twitter
              2 juin 2009 à 18:01:15

              Bah tu stocke le

              $nomdufichier

              mysql_connect($dbhost,$dblogin,$dbpassword);
              mysql_select_db($dbname);

              $requete = "INSERT INTO tatablesql VALUES('$nomdufichier')";
              $traiter = mysql_query($requete);
              • Partager sur Facebook
              • Partager sur Twitter
                2 juin 2009 à 18:02:37

                ok je test ça et je reviens pour te dire si tout fonctionne.
                Merci pour tes reponses et ton aide Shantees je repasse pour te tenir au courant.
                • Partager sur Facebook
                • Partager sur Twitter
                  2 juin 2009 à 18:04:10

                  Il faut créer une base Sql et une table adapté, c'est juste un exemple mon code !
                  • Partager sur Facebook
                  • Partager sur Twitter
                    2 juin 2009 à 18:18:28

                    Re shantees je te donne plus d'infos pour pas que je te fasse perdre plus de temps

                    Ma base de donnée se nomme dbprotect

                    2 tables : utilisateurs, fichier

                    au niveau des champs dans la table fichier j'ai mis
                    id_fichier int (clé primaire)
                    id_user (pour faire la relation avec mon autre table utilisateurs)
                    fichier_nom
                    taille
                    extension
                    fichier_chemin (la ou je stock le chemin du fichier)

                    <?php
                    
                    // Paramètres de connexion
                    $hostname_dbprotect = "localhost"; // nom ou ip de votre serveur
                    $database_dbprotect = "dbprotect"; // nom de votre base de données
                    $username_dbprotect = "root"; // nom d'utilisateur (root par défaut) !!! ATTENTION, en utilisant root, vos visiteurs on tout les droits sur la base
                    $password_dbprotect = ""; // mot de passe (aucun par défaut mais il est fortement recommandé d'en mettre un ... sinon, à quoi bon la sécurité ?)
                    $dbprotect = mysql_pconnect($hostname_dbprotect, $username_dbprotect, $password_dbprotect) or trigger_error(mysql_error(),E_USER_ERROR); 
                    ?>
                    


                    apres avoir etait connecter a la base de donnée

                    $sql = "INSERT INTO fichiers(id_fichier, id_user, fichier_nom, taille, extension, fichier_chemin,VALUES('$id_fichier', '$id_user', '$fichier_nom', '$taille', '$extension', '$fichier_chemin',)";

                    Est-ce cela shantees pour inserer les données dans My sql?

                    je vais voir ce que ça donne mais je m'attend a une erreur car je n'ai pas précisé dans mon code PHP les variables.
                    (désolé pour ses questions mais je suis novice en PHP)
                    • Partager sur Facebook
                    • Partager sur Twitter

                    Enregistrer chemin acces fichier et le récupérer PHP

                    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                    × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                    • Editeur
                    • Markdown