quel type de champs mysql pour une variable type file ?

Discussion dans 'Développement d'un site Web ou d'une appli mobile' créé par Zikou, 5 Juillet 2009.

  1. Zikou

    Zikou WRInaute discret

    Inscrit:
    11 Août 2008
    Messages:
    210
    J'aime reçus:
    0
    Bonjour, j'essaie d'uploader depuis un formulaire le lien d'une image dans une table mysql, j'ai bien mon id qui s'incrémente, mais mon champ userfile reste vide j'ai mis un type BLOB ?? est ce le bon type ??
     
  2. UsagiYojimbo

    UsagiYojimbo WRInaute accro

    Inscrit:
    23 Novembre 2005
    Messages:
    12 380
    J'aime reçus:
    0
    Logiquement si c'est pour mettre l'url du fichier, tu peux te débrouiller pour qu'un varchar 255 suffise. Un blob c'est peut-être (même sûrement) un peu trop pour juste une url.

    Pour le reste on peut voir ton bout de code ?
     
  3. j-mi

    j-mi WRInaute accro

    Inscrit:
    17 Mai 2005
    Messages:
    3 358
    J'aime reçus:
    0
    tu es sur que ton php code envoie bien le lien de ton image?
     
  4. Zikou

    Zikou WRInaute discret

    Inscrit:
    11 Août 2008
    Messages:
    210
    J'aime reçus:
    0
    Bonjour, voici le code de mon formulaire :
    Code:
    <form method="post" action="add-image.php" enctype="multipart/form-data">
         <input type="file" name="userfile"  /><br />
         <label for="titre">nom du fichier (max 50 caractères):</label><br />
         <input type="text" name="name" value="Titre du fichier"  /><br />
         
         <input type="submit" name="submit" value="Envoyer" />
    </form>
    et voici le code de la récupération des variables et l'envoie vers la table :

    Code:
    if(isset($_POST['userfile']))      $userfile=$_POST['userfile'];
    else      $userfile="";
    
    if(isset($_POST['name']))      $name=$_POST['name'];
    else      $name="";
    
    
    
           // connexion à la base
    $serveur='xxxxx'; // serveur
    $user='xxxxxxx'; // nom d'utilisateur
    $password='xxxxxxx'; // mot de passe
    $base='xxxxxxxxx'; // base
    
    // Connexion à la base
    $connexion = mysql_connect("$serveur","$user","$password") or die ("Impossible de se connecter à la base de données");
    // sélection de la base
    mysql_select_db("$base",$connexion);
    $db = mysql_connect("xxxxxxxxxxx", "xxxxxxxxx","xxxxxxxxx")  or die('Erreur de connexion '.mysql_error());
    // sélection de la base  
    
        mysql_select_db('xxxxxxxx',$db)  or die('Erreur de selection '.mysql_error());
     // on écrit la requête sql 
        $sql = "INSERT INTO image_tbl(id, userfile, name) VALUES('','$userfile','$name')";	
    // on insère les informations du formulaire dans la table 
        mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error()); 
    	    // on affiche le résultat pour le visiteur 
        echo 'et les infos ont été ajoutées.'; 
    
        mysql_close();  // on ferme la connexion 
    mon champs name est bien écrit, mais mon champs userfile est vide ??
     
  5. UsagiYojimbo

    UsagiYojimbo WRInaute accro

    Inscrit:
    23 Novembre 2005
    Messages:
    12 380
    J'aime reçus:
    0
    Bein un champ de type file, tu le récupère non dans le tableau $_POST mais dans le tableau $_FILE (après avoir vérifié que tu avais bien mis l'attribut "enctype=multipart/form-data".

    Mais cela ne suffira pas, un uploade de fichier ne se traite absolument pas comme ça : http://antoine-herault.developpez.com/tutoriels/php/upload/
     
  6. Zikou

    Zikou WRInaute discret

    Inscrit:
    11 Août 2008
    Messages:
    210
    J'aime reçus:
    0
    ok merci pour le lien, mais ça concerne l'upload sur le serveur pas sur une bdd ? et une petite question il est ou le fichier temporaire creer dans l'upload, je comprend pas trop, il est sur mon pc ?
     
  7. Robinson

    Robinson WRInaute passionné

    Inscrit:
    26 Octobre 2005
    Messages:
    2 282
    J'aime reçus:
    0
    Tu veux stoker le lien d'une image que tu n'enregistres pas sur ton serveur mais qui provient du pc d'une personne ???
    C'est fort ça :)


    Va voir le lien ci-dessus. Enregistre le fichier sur ton serveur et ensuite le nom du fichier dans ta base de données...
     
  8. skyll

    skyll WRInaute passionné

    Inscrit:
    14 Octobre 2005
    Messages:
    1 366
    J'aime reçus:
    0
    Oui mais possible quand même :mrgreen:
    même si c'est carrément pas une méthode conseillées, on peut le faire si il y à réellement un besoin...
    y' même un post sur wri qui donnais l'une des solution si je me rapelle.. je vais fouiller
    et j'édite si je retrouve :mrgreen:
     
  9. Zikou

    Zikou WRInaute discret

    Inscrit:
    11 Août 2008
    Messages:
    210
    J'aime reçus:
    0
    Bonjour tout le monde,
    je sais pas ou t'as lu ça Robinson... Skyll te casse pas la tête c'est hors sujet.
    Je veux pouvoir changé facilement l'image d'une page. J'ai trouvé une autre solution, sans bdd : j'upload via une connexion ftp, je la renomme au passage.