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

PHP & Base de données Discussion :

Insertion de fichier dans MySQL en LongBlob


Sujet :

PHP & Base de données

  1. #1
    Membre régulier

    Homme Profil pro
    Restaurateur
    Inscrit en
    Juin 2008
    Messages
    316
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Restaurateur
    Secteur : Alimentation

    Informations forums :
    Inscription : Juin 2008
    Messages : 316
    Points : 102
    Points
    102
    Billets dans le blog
    1
    Par défaut Insertion de fichier dans MySQL en LongBlob
    Bonjour, souci d'envoie..
    voilà mon form :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <form method="post" enctype="multipart/form-data" action="upload.php">
    <p>
    <input type="file" name="fichier" size="30">
    <input type="submit" name="upload" value="Uploader">
    </p>
    </form>
    et voilà l'upload :
    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
    <?php
    $servername = "**";
    $username = "**";
    $password = "**";
    $dbname = "**";
     
    // Create connection
    $conn = new mysqli($servername, $username, $password, $dbname);
    // Check connection
    if ($conn->connect_error) {
        die("Connection failed: " . $conn->connect_error);
    	}else {
    		echo("ENVOIE");
    } 
     
     
    $req= "INSERT INTO ARCHIVES VALUES ('',$HTTP_POST_FILES,'')";
    mysql_query($req) or die("Pas moyen d'ajouter le fichier à la table !!!");
    echo("fait.. ou pas...");
     
     
    $conn->close();
    ?>
    je me connecte bien a la base,
    le "ENVOIE" s'affiche..
    et j'ai une erreur sur la ligne mysql_query($req) ligne 18
    ma table se nomme bien "ARCHIVES".. mon champs1 est un ID,
    le champs2 est le stockage du fichier et le champs3 est une current_time de l'insertion...
    je pense que j'utilise mal la donnée du fichier en upload...

    je bugg'.. total...
    mon champs est bien en LONGBLOB, et fonctionne nikel sur phpmyadmin en direct..

    a l'aide...:-)

  2. #2
    Expert éminent sénior Avatar de Artemus24
    Homme Profil pro
    Agent secret au service du président Ulysses S. Grant !
    Inscrit en
    Février 2011
    Messages
    6 381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Agent secret au service du président Ulysses S. Grant !
    Secteur : Finance

    Informations forums :
    Inscription : Février 2011
    Messages : 6 381
    Points : 19 066
    Points
    19 066
    Par défaut
    Salut

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "INSERT INTO ARCHIVES VALUES ('',$HTTP_POST_FILES,'')";
    Vous n'avez pas l'impression qu'il manque quelque chose dans votre requête d'insertion ?

    1) je ne voie pas la liste des colonnes qui vont être en relation avec la liste des valeurs.

    2) si vous ne mettez rien dans une colonne, autant utiliser soit "default", ou encore mieux, vous ne faites aucune référence à cette colonne.
    Mais dans tous les cas, votre colonne doit posséder la caractéristique "NULL DEFAULT NULL".

    3) pour charger un fichier, vous devez utiliser "load_file(...)".

    @+
    Si vous êtes de mon aide, vous pouvez cliquer sur .
    Mon site : http://www.jcz.fr

  3. #3
    Membre régulier

    Homme Profil pro
    Restaurateur
    Inscrit en
    Juin 2008
    Messages
    316
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Restaurateur
    Secteur : Alimentation

    Informations forums :
    Inscription : Juin 2008
    Messages : 316
    Points : 102
    Points
    102
    Billets dans le blog
    1
    Par défaut
    Je vais essayer..
    J'avais essayé en faisant reference a la colonne..
    Mais ca ne passait pas non plus... (Je ne mentionnais pas les autres.. Juste celle où j'inserai..)

    (J'utilise generalement xojo et
    en vb où dans ce programme, je cible juste la colonne d'insertion.. )

    Merci, j'essaie.

  4. #4
    Membre régulier

    Homme Profil pro
    Restaurateur
    Inscrit en
    Juin 2008
    Messages
    316
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Restaurateur
    Secteur : Alimentation

    Informations forums :
    Inscription : Juin 2008
    Messages : 316
    Points : 102
    Points
    102
    Billets dans le blog
    1
    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
    <?php
    $servername = "**";
    $username = "**";
    $password = "*";
    $dbname = "*";
     
    // Create connection
    $conn = new mysqli($servername, $username, $password, $dbname);
    // Check connection
    if ($conn->connect_error) {
        die("Connection failed: " . $conn->connect_error);
    	}else {
    		echo("CONNECTION OK -->");
    } 
     
    //$ret        = is_uploaded_file($_FILES['fichier']['tmp_name']);
    $F_type = $_FILES['fichier']['type'];
    $F_nom  = $_FILES['fichier']['name']; 
    $F_blob = file_get_contents ($_FILES['fichier']['tmp_name']); // binaire ne passe pas..
     
     
     
    $req= "INSERT INTO ARCHIVES (DONNEE, NOM) VALUES ('$F_blob','$F_nom')";
    mysqli_query($conn,$req) or die("Pas moyen d'ajouter le fichier à la table !!!");
    echo("fait..");
     
     
    $conn->close();
    ?>
    Je suis sous PHP7 et je pense qu'il y a eu un changement le file_get_contents ne passe pas.. et je ne comprends pas en lisant la doc...
    grrrrrr


    Seul le nom du fichier s'nregistre dans la Base de Donnée

  5. #5
    Expert éminent sénior Avatar de Artemus24
    Homme Profil pro
    Agent secret au service du président Ulysses S. Grant !
    Inscrit en
    Février 2011
    Messages
    6 381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Agent secret au service du président Ulysses S. Grant !
    Secteur : Finance

    Informations forums :
    Inscription : Février 2011
    Messages : 6 381
    Points : 19 066
    Points
    19 066
    Par défaut
    Salut djoumusic.

    Je vous ai dit de faire un "load_file" qui est une fonction de mysql.
    --> https://dev.mysql.com/doc/refman/5.7...tion_load-file

    Pourquoi préférez-vous prendre une fonction de php ?

    @+
    Si vous êtes de mon aide, vous pouvez cliquer sur .
    Mon site : http://www.jcz.fr

  6. #6
    Membre régulier

    Homme Profil pro
    Restaurateur
    Inscrit en
    Juin 2008
    Messages
    316
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Restaurateur
    Secteur : Alimentation

    Informations forums :
    Inscription : Juin 2008
    Messages : 316
    Points : 102
    Points
    102
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Artemus24 Voir le message
    Salut djoumusic.

    Je vous ai dit de faire un "load_file" qui est une fonction de mysql.
    --> https://dev.mysql.com/doc/refman/5.7...tion_load-file

    Pourquoi préférez-vous prendre une fonction de php ?

    @+
    Bonjour, parce qu'avec load_file le fichier doit etre sur le serveur.. Hors, il ne l'est pas.. Il est sur mon disque dur.. Et je dois l'envoyer... Et load_file ne fait pas ca..

Discussions similaires

  1. Insertion de fichier dans MySQL en LongBlob
    Par djoumusic dans le forum MySQL
    Réponses: 1
    Dernier message: 25/05/2017, 11h25
  2. [MySQL] insertion multiple d'un fichier dans mysql et suppression d'un fichier
    Par serginophp dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 13/03/2016, 19h09
  3. [MySQL] Insertion champ fichier dans une base MySql
    Par lemzo84 dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 08/02/2015, 23h37
  4. [MySQL] insertion de fichier dans la base mysql
    Par kitcarson23 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 06/01/2011, 14h38
  5. [SGBD] Manière de stockage de fichiers dans MySql
    Par Promise dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 08/09/2005, 18h02

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