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

Requêtes MySQL Discussion :

insertion fichier dans une base de données MYSQL


Sujet :

Requêtes MySQL

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2012
    Messages
    76
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2012
    Messages : 76
    Points : 54
    Points
    54
    Par défaut insertion fichier dans une base de données MYSQL
    Bonjour à tous,

    Je vous demande de l'aide car je suis bloqué lorsque j'essaie d'insérer des fichiers dans ma base de données.

    Mon but est d'insérer un fichier de type ou PDF (ou n'importe quel autre type) dans une base de données puis d'être en mesure de le télécharger ou de le lire sur mon navigateur en PHP.

    J'ai réussi à insérer quelque chose dans ma bdd, néanmoins quand je télécharge je me suis aperçu que le fichier était "corrompu", adobe ne veut pas l'ouvrir !

    En allant voir dans ma base de données j'ai vu que colonne data comportait la mention "blob-0o".

    C'est donc que je me suis demandé si vous pouviez m'aider à vérifier le code suivant :

    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
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    <?php
     
    	$reference = "test";
     
    	$user  = "root";
    	$host = "localhost";
    	$password="";
    	$database="bdd";
     
    	$connexion = mysql_connect($host,$user) or die ("Connexion au serveur impossible");
     
    	$db = mysql_select_db ($database) or die ("Sélection de la base de données impossible");
     
     
     
        // Check if a file has been uploaded
        if(isset($_FILES['uploaded_file'])) {
            // Make sure the file was sent without errors
            if($_FILES['uploaded_file']['error'] == 0) {
                // Connect to the database
                $dbLink = new mysqli('127.0.0.1', 'root', '', 'bdd');
                if(mysqli_connect_errno()) {
                    die("MySQL connection failed: ". mysqli_connect_error());
                }
     
                // Gather all required data
                $name = $dbLink->real_escape_string($_FILES['uploaded_file']['name']);
                $mime = $dbLink->real_escape_string($_FILES['uploaded_file']['type']);
                $data = $dbLink->real_escape_string(file_get_contents($_FILES  ['uploaded_file']['tmp_name']));
                $size = intval($_FILES['uploaded_file']['size']);
     
                // Create the SQL query
     
     
    				$query="UPDATE file SET name='$name', mime='$mime', size='$size' WHERE reference='$reference'";  
     
                // Execute the query
                $result = $dbLink->query($query);
     
                // Check if it was successfull
                if($result) {
                    echo 'Success! Your file was successfully added!';
                }
                else {
                    echo 'Error! Failed to insert the file'
                       . "<pre>{$dbLink->error}</pre>";
                }
            }
            else {
                echo 'An error accured while the file was being uploaded. '
                   . 'Error code: '. intval($_FILES['uploaded_file']['error']);
            }
     
            // Close the mysql connection
            $dbLink->close();
        }
        else {
            echo 'Error! A file was not sent!';
        }
     
        // Echo a link back to the main page
        echo '<p>Click <a href="index.html">here</a> to go back</p>';
        ?>

    J'ai récupéré ce code sur un autre forum, ça semble marcher à première vue mais apparemment ça n'insère pas tout le contenu dans la base de données.

  2. #2
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2012
    Messages
    76
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2012
    Messages : 76
    Points : 54
    Points
    54
    Par défaut
    Bonjour CinePhil,

    Je n'ai pas très bien compris le lien que tu m'as donné.

    Il s'agit de l'obsolescence d'images.

    Pourquoi est-ce une mauvaise idée ? Une multitude de sites "ont l'air" de fonctionner comme ça puisqu'il est possible d'uploader des fichiers et de les télécharger.

    C'est précisément ça que j'essaie d'obtenir avec des fichiers PDF. Et également de les afficher dans le navigateur.

    Cdt
    Globolite

  4. #4
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    Par défaut
    Le lien que j'ai donné explique qu'il ne faut pas enregistrer les fichiers dans la BDD mais seulement le chemin vers le fichier physique qui est situé classiquement sur un répertoire ou une arborescence de répertoires dédiés à ce stockage.

    Les sites qui "ont l'air de fonctionner ainsi" fonctionnent en fait, pour la plupart, comme je viens de le décrire.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2012
    Messages
    76
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2012
    Messages : 76
    Points : 54
    Points
    54
    Par défaut
    Ah d'accord, merci je vais tenter cette technique alors !

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2012
    Messages
    76
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2012
    Messages : 76
    Points : 54
    Points
    54

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

Discussions similaires

  1. [MySQL] Insertion multiple dans une base de données MYSQL
    Par bryanmohamet dans le forum PHP & Base de données
    Réponses: 15
    Dernier message: 14/11/2010, 22h49
  2. Réponses: 2
    Dernier message: 21/05/2010, 20h57
  3. stocker des fichiers dans une base de donnée MYSQL
    Par Invité(e) dans le forum MySQL
    Réponses: 5
    Dernier message: 03/12/2009, 13h10
  4. Upload de fichier dans une base de données MySQL
    Par miko2009 dans le forum W4 Express
    Réponses: 1
    Dernier message: 07/01/2009, 19h16
  5. [HTML] Probleme d'insertion HTML dans une base de données MySQL
    Par tarzanjane dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 28/09/2006, 12h12

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